带有列表列表的 Python 列表理解

问题描述

我有一个列表列表(实际列表更长):

a = [[1,2],[5,8],[10,4],[15,9]]

我需要在列表理解中使用这个列表。对于第一个循环,1 和 2 将用作 i 和 j。对于第二个循环,5 和 8 将用作 i 和 j。等等。

以下代码不正确,但如何使其工作?我不想拆分列表。非常少的计算成本很重要。

[some_work_with(i,j) for i,j in zip(a[][0],a[][1])]

有些工作可能是print(i,j)

解决方法

此处不需要 zip,只需在迭代元素时解压元素

[some_work_with(i,j) for i,j in a]
,
def func(i,j):
    return [i-1,j+1]

a = [[1,2],[5,8],[10,4],[15,9]]

print ([func(x[0],x[1]) for x in a])

输出:

[[0,3],[4,9],[9,5],[14,10]]

如果您愿意,也可以使用此语法:

print ([func(i,j in a])
,

为什么不简单

[some_work(pair[0],pair[1]) for pair in a]

例如

[f'i : {pair[0]} and j : {pair[1]}' for pair in a]

这将导致:

['i : 1 and j : 2','i : 5 and j : 8','i : 10 and j : 4','i : 15 and j : 9']

相关问答

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