列出要在新列表中获得true或false的条件

时间:2017-04-27 11:37:54

标签: python

我有我的清单:

>>> labels = ['setosa', 'setosa', 'versicolor', 'versicolor', 'virginica']

我想创建一个新列表,其中True索引上的'setosa'和其他位置False的元素数量相同。

我试过这样的

>>> b = 'setosa' in labels
>>> b
True

我想要一个包含5个元素的列表:

[True, True, False, False, False]

3 个答案:

答案 0 :(得分:9)

只需使用列表理解:

lst = [label == "setosa" for label in labels]

答案 1 :(得分:2)

您可以使用map,它在Python 2中返回list

>>> labels = ['setosa', 'setosa', 'versicolor', 'versicolor', 'virginica']
>>> map('setosa'.__eq__, labels)
[True, True, False, False, False]

在Python 3中,如果你需要一个列表:

>>> list(map('setosa'.__eq__, labels))
[True, True, False, False, False]

答案 2 :(得分:0)

您可以使用.append()功能:

new_list = []

for element in labels: new_list.append('setosa' == element)