Распаковка нескольких аргументов из списка в цикле for

У меня есть два списка.

d1 = ["'02/01/2018'", "'01/01/2018'", "'12/01/2017'"]
d2 = ["'02/28/2018'", "'01/31/2018'", "'12/31/2017'"]

Я пытаюсь получить эти значения для распаковки в цикле for.

for i,y in d1,d2:
    i,y = Startdate, Enddate

Я понимаю, что эта итерация будет перезаписывать значения Startdate и Enddate при каждой итерации, но сейчас я просто пытаюсь успешно распаковать элементы каждого списка.

Я получаю следующую ошибку:

too many values to unpack (expected 2)

Я думал, что я распаковывал 2? (d1 и d2)

2 ответа

Вам нужно использовать zip, Вот эксперимент с zip:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> for i,y in zip(a,b):
    print(i,y)

1 4
2 5
3 6
>>> 

Вы можете сказать, что ваш цикл может выглядеть так:

for i,y in zip(d1,d2):
    i,y = Startdate, Enddate

Цикл for не может "распаковать" несколько списков, как вы пытались в своем примере, но вы можете "сжать" его как упоминание от @Nouman

list (zip ([1, 2, 3], ['a', 'b', 'c'])) -> [(1, 'a'), (2, 'b'), (3, 'с')]

Теперь вы можете распаковать даты два на два...

Другие вопросы по тегам