Python 如何使用for循环打印两个不同列表中的两个变量?

Python 如何使用for循环打印两个不同列表中的两个变量?,python,python-3.x,list,for-loop,Python,Python 3.x,List,For Loop,我试图从两个不同的列表中打印两个具有相同值的for循环的变量,但当列表中有两个以上的值时,我会出现以下错误: ValueError: too many values to unpack (expected 2) 假设姓名和姓氏列表的长度相同(例如,name=['m'、'y'、'.'、'.'.'.]和姓氏=['n'、'a'、'm'、'e']) 我的预期结果是“我的…”和“姓名”垂直打印在一起。使用: 结果: m n y a . m . e 您的for循环正在一个长度为2的序列上迭代:name

我试图从两个不同的列表中打印两个具有相同值的for循环的变量,但当列表中有两个以上的值时,我会出现以下错误:

ValueError: too many values to unpack (expected 2)
假设姓名和姓氏列表的长度相同(例如,
name=['m'、'y'、'.'、'.'.'.]
姓氏=['n'、'a'、'm'、'e']

我的预期结果是“我的…”和“姓名”垂直打印在一起。

使用:

结果:

m n
y a
. m
. e

您的
for
循环正在一个长度为2的序列上迭代:
name
后跟
姓氏
。这两项中的每一项都被解包成
x
y
,这两项都失败了,因为它们各自包含四个元素。要并行迭代这两个序列,请使用
zip(姓名)
。一切都很详细,你能解释一下为什么会这样吗?或者为什么我这样做的原因是:
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