Форум сайта python.su
не могу понять как это вообще возможно - поменять значение в кортеже
a = [[1,2,3,4,5],[1,4,6,8,9],[6,5,3,2,1]] b = tuple(a) print (b) c = a[:] stroka = -1 stolbets = -1 for i in a: stroka += 1 for p in i: stolbets += 1 if stolbets == len(a[1]): stolbets = 0 try: c[stroka][stolbets]= b[stroka][stolbets+1]+b[stroka][stolbets-1] except: c[stroka][stolbets]= b[stroka][0]+b[stroka][stolbets-1] print(c) #b[1]= 7 print(b)
Офлайн
или так
Офлайн
Кортеж содержит ссылки на списки и они не меняются. Меняются элементы самого списка.
Офлайн
а можно ли заменить все списки b на кортежи, и если можно, то как это сделать ?
Офлайн
a = [[1,2,3,4,5],[1,4,6,8,9],[6,5,3,2,1]] b = [tuple(x) for x in a] print(b)
Офлайн
большое спасибо
Офлайн
>>> a = [[1, 2, 3, 4, 5], [1, 4, 6, 8, 9], [6, 5, 3, 2, 1]] >>> b = tuple(map(tuple, a)) >>> b ((1, 2, 3, 4, 5), (1, 4, 6, 8, 9), (6, 5, 3, 2, 1)) >>>
Офлайн