【问题标题】:How to print two variables from two different lists with a for loop? [duplicate]如何使用 for 循环从两个不同的列表中打印两个变量? [复制]
【发布时间】:2018-12-25 15:07:48
【问题描述】:

我正在尝试使用 for 循环从两个具有相同数量值的不同列表中打印两个变量,但是当列表具有两个以上的值时,我会收到此错误:

ValueError: too many values to unpack (expected 2)

假设名字和姓氏列表的长度相同(例如name = ['m', 'y', '.', '.']surname = ['n', 'a', 'm', 'e']

for x,y in name,surname:
    print(x,y)

我的预期结果是“my..”和“name”垂直打印在一起。

【问题讨论】:

  • 您的 for 循环正在迭代长度为 2 的序列:name 后跟 surname。这两个项目中的每一个都被解包到 xy 中,这会失败,因为它们每个都包含四个元素。要并行迭代这两个序列,请使用zip(name, surname)
  • 浏览this 帖子。一切都很详细

标签: python python-3.x list for-loop


【解决方案1】:

使用zip():

name = ['m', 'y', '.', '.']

surname = ['n', 'a', 'm', 'e']

for x, y in zip(name, surname):
    print(x, y)

结果:

m n
y a
. m
. e

【讨论】:

  • 你能解释一下为什么它是这样工作的吗?或者为什么我这样做的方式没有
  • zip() 的文档(链接在答案中)解释了它是如何工作的,但无论如何只要使用它就应该让它显而易见。
猜你喜欢
  • 2013-09-10
  • 1970-01-01
  • 2021-09-22
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
相关资源
最近更新 更多