Py学习  »  Python

如何用Python过滤列表?

user366312 • 5 年前 • 1827 次点击  

假设,我有一个清单 rx xs 只包含列表中的偶数 .

我该怎么做?

以下代码没有给出正确答案:

rx = [1, 2, 3, 4, 5, 6]

xs = [rx[x%2==0] for x in rx] # <==========

print(xs)

输出

[1, 2, 1, 2, 1, 2]

另一个问题是:这种类型的符号在Python中是什么?是lambda表达式吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56155
文章 [ 2 ]  |  最新文章 5 年前
Z4-tier
Reply   •   1 楼
Z4-tier    5 年前

这将使具有偶数索引位置的项:

xs = [rx[n] for n in range(1, len(rx), 2)]

这将使这些项目本身更加均衡:

xs = [x for x in rx if x%2==0]

在这两种情况下,这些都被称为列表理解。

[rx[x%2==0] for x in rx]

只是在列表的前两项之间摇摆 rx ,因为 True False 在python中:

>>> rx[True]
2
>>> rx[False]
1
Nick
Reply   •   2 楼
Nick    5 年前

我想你在找一个 list comprehension

rx = [1, 2, 3, 4, 5, 6]
xs = [x for x in rx if x % 2 == 0]
# [2, 4, 6]