我正在尝试根据条件从列表中获取样本。这应该很容易做到,但我无法做到以下几点:
a = [2,4,5,9,1,6,4]
b = 6
c = [x for x in a if a < b]
我基本上需要一个包含小于 6 的值的新列表。有什么建议吗?
我正在尝试根据条件从列表中获取样本。这应该很容易做到,但我无法做到以下几点:
a = [2,4,5,9,1,6,4]
b = 6
c = [x for x in a if a < b]
我基本上需要一个包含小于 6 的值的新列表。有什么建议吗?
或者,另一种方式:
>>> a = [2,4,5,9,1,6,4]
>>> b = 6
>>> c = filter(lambda x: x < b, a)
>>> c
[2, 4, 5, 1, 4]
正如 Ignacio 指出的那样,您几乎拥有它:
>>> c = [x for x in a if x < b]
>>> c
[2, 4, 5, 1, 4]
列表推导是编写此循环的更长方法:
>>> c = []
>>> for x in a:
... if x < b:
... c.append(x)
...
>>> c
[2, 4, 5, 1, 4]
你错过了。您需要比较每个元素,而不是序列。
c = [x for x in a if x < b]
嗯,你的意思是if x < b
,对吧?你还有一个问题,数组 a 中的值是字符串而不是整数。所以:
[x for x in a if int(x)<b]