как лучше обращаться к tuple-подэлементу элемента массива?
Например у меня есть массив
moves = [(1,2),(2,3),(3,2)]
Как правильно обращаться к каждому подэлементу элемента в массиве?
Просто когда я обращаюсь к ним так
for move in moves:
for x, y in move:
....
или так
for move in moves:
x, y = move
....
Мне выводит ошибку cannot unpack non-iterable int object
Ответы (2 шт):
Самый простой вариант такой:
moves = [(1,2),(2,3),(3,2)]
for x, y in moves:
print(x, y)
Ваш второй вариант тоже должен работать. Если вы пишете, что он не работает, то вы где-то что-то напутали.
Первый вариант не работает, потому что у вас один move - это один тапл. Это всё равно, как если бы вы написали
for x, y in (1, 2):
...
Этот код будет последовательно перебирать элементы тапла (сначала возьмёт 1, потом возьмёт 2) и каждый из этих элементов будет пытаться распаковать на две переменные. Очевидно, что одно отдельное число нельзя распаковать в две переменные, именно об этом и написано в ошибке.
Кажется самый простой и удобный способ
for i in range(len(moves)):
x, y = moves[i]