如何使用另外两个列表有条件地从列表中提取值?

2024-05-04 19:42:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下三个清单:

a = [2, 1, 3, 5, 4]
b = [3, 3, 4, 4, 6]
c = [1983, 2401, 852, 2442, 5035]

我用过:

^{pr2}$

这给了我来自列表a的[3,4]。我需要来自列表c的相应值,它将是[852,5035]。任何建议都会有帮助。在


Tags: 列表建议pr2
1条回答
网友
1楼 · 发布于 2024-05-04 19:42:20
x = [c_val for a_val, c_val in zip(a, c) if a_val in b]

使用zip获得与a的每个元素相对应的c元素。请注意,如果b很大,那么使用set可能会更好,因为{}的速度更快:

^{pr2}$

但是,不要将set调用放在列表理解中;这样会在每次迭代时重新计算集合,从而破坏任何性能优势。在

相关问题 更多 >