【问题标题】:unpacking multiple arguments from a list in a for loop在 for 循环中从列表中解压缩多个参数
【发布时间】:2019-02-04 14:51:45
【问题描述】:

我有两个列表。

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

我意识到每次迭代都会覆盖 StartdateEnddate 的值,但现在我只是尝试成功解压缩每个列表的元素。

我收到以下错误:

too many values to unpack (expected 2)

我以为我在拆包 2? (d1 和 d2)

【问题讨论】:

  • for i,y in zip(d1,d2):?
  • d1,d2 创建一个包含两个元素的元组,您的列表...您的每个列表都有三个元素,它会尝试将其解压缩到 i,y

标签: python list for-loop arguments argument-unpacking


【解决方案1】:

您需要使用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

【讨论】:

    【解决方案2】:

    for 循环无法像您在示例中尝试的那样“解压”多个列表,但您可以将其“压缩”为 @Nouman 的提及者

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

    您现在可以解压两个每两个的日期...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2021-08-30
      • 1970-01-01
      相关资源
      最近更新 更多