L oop над списком кортежей, возвращающих только некоторые индексы внутри списка - PullRequest
0 голосов
/ 16 января 2020

Допустим, у меня есть список кортежей:

myList = [(1,2,3) , (2,3,4) , (3,4,5) ,(4,5,6) , (1,3,5) , (2,4,6)]

Я хочу перебрать его, но просто буду использовать первые два индекса каждого кортежа.

Так что я бы на самом деле повторяем:

[(1,2) , (2,3), (3,4), (4,5), (1,3), (2,4)]

Я знаю, что могу сделать это:

for item in myList

А затем в моем коде просто используйте item[0], item [1], но я думаю, что это действительно повлияет на читаемость моего кода.

Но у меня есть это for в понимании списка, поэтому (я думаю) я не могу сохранить эти значения в другой переменной.

Мой вопрос здесь: будет ли использование фиктивной переменной, например:

for (variablename1,variablename2,dummyvar) in myList

, лучшим способом сделать это, или есть прямой способ вернуть только первые индексы из for?!

(я принимаю подсказки, чтобы лучше уточнить вопрос;))

1 Ответ

3 голосов
/ 16 января 2020

Использование переменной anonymouos _ типично в таких случаях:

for x, y, _ in myList:
    # do stuff with x and y

Если кортежи имеют различную длину, вы можете сделать:

for x, y, *_ in myList:
    # do stuff with x and y

, чтобы избежать ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...