问题描述
我正在尝试迭代X
和y
的同时解压缩它们,并使用enumerate()
函数对数进行计数,如以下代码所示:
X = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
Y = [[11,21,31,41],[51,61,71,81],[91,101,111,121],[131,141,151,161],[171,181,191,201]]
index = 0
for x,y in zip(X,Y):
print(f'{index },{x},{y}')
index += 1
我想保存index += 1
行,并能够在for循环中获取所有索引x和y
我尝试过的事情:
X = [[1,201]]
for index,data in enumerate(zip(X,Y)):
x,y = data
print(f'{index},{y}')
所需结果:
可以在以下示意图 pseudo-code 中看到所需的结果:
#for index,x,Y):
# print(f'{index },{y}')
我在这里想念什么?
谢谢。
解决方法
您可以将enumerate
返回的值直接解压缩到元组中(您的伪代码只是漏掉了括号):
for index,(x,y) in enumerate(zip(X,Y)):
print(f'{index},{x},{y}')
->
0,[1,2,3,4],[11,21,31,41]
1,[5,6,7,8],[51,61,71,81]
...
,
您还可以在f字符串中使用data [0]和data [1]。因此,您可以使用较少的临时变量。
for index,data in enumerate(zip(X,Y)): print(f'{index},{data[0]},{data[1]}')