как лучше обращаться к 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 шт):

Автор решения: Xander

Самый простой вариант такой:

moves = [(1,2),(2,3),(3,2)] 

for x, y in moves: 
    print(x, y)

Ваш второй вариант тоже должен работать. Если вы пишете, что он не работает, то вы где-то что-то напутали.

Первый вариант не работает, потому что у вас один move - это один тапл. Это всё равно, как если бы вы написали

for x, y in (1, 2):
    ...

Этот код будет последовательно перебирать элементы тапла (сначала возьмёт 1, потом возьмёт 2) и каждый из этих элементов будет пытаться распаковать на две переменные. Очевидно, что одно отдельное число нельзя распаковать в две переменные, именно об этом и написано в ошибке.

→ Ссылка
Автор решения: Khimer

Кажется самый простой и удобный способ

for i in range(len(moves)):
        x, y = moves[i]
→ Ссылка