根据条件从列表中提取值

Ibe*_*Ibe 5 python-2.7

我正在尝试根据条件从列表中获取样本。这应该很容易做到,但我无法做到以下几点:

a = [2,4,5,9,1,6,4]
b = 6
c = [x for x in a if a < b]
Run Code Online (Sandbox Code Playgroud)

我基本上需要一个新列表,它应该包含小于 6 的值。有什么建议吗?

Bur*_*lid 7

或者,另一种方式:

>>> a = [2,4,5,9,1,6,4]
>>> b = 6
>>> c = filter(lambda x: x < b, a)
>>> c
[2, 4, 5, 1, 4]
Run Code Online (Sandbox Code Playgroud)

正如伊格纳西奥指出的那样,你几乎拥有它:

>>> c = [x for x in a if x < b]
>>> c
[2, 4, 5, 1, 4]
Run Code Online (Sandbox Code Playgroud)

列表推导式是编写此循环的较长方式:

>>> c = []
>>> for x in a:
...     if x < b:
...         c.append(x)
...
>>> c
[2, 4, 5, 1, 4]
Run Code Online (Sandbox Code Playgroud)