Распаковка нескольких аргументов из списка в цикле 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, 'с')]
Теперь вы можете распаковать даты два на два...