Python列表理解与列表列表

2024-06-28 20:16:39 发布

您现在位置: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)


Tags: 代码in列表forwithsomezipwork
3条回答

这里不需要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) for 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']

相关问题 更多 >