распаковка нескольких аргументов из списка в цикле for - PullRequest
0 голосов
/ 29 августа 2018

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

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 ]

0 голосов
/ 29 августа 2018

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

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

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

0 голосов
/ 29 августа 2018

Вам нужно использовать 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
...