打开包装并一步计算它们

问题描述

我正在尝试迭代Xy的同时解压缩它们,并使用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

我尝试过的事情:

  • 我尝试在enumerate上使用zip函数,但这需要我手动解开xy的包装,如以下代码所示,我想保存这一行:
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]}')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...