2017-04-27 2 views
3

Ich habe meine Liste:Liste Zustand in neuer Liste wahr oder falsch bekommen

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

Ich mag eine neue Liste erstellen, mit der gleichen Menge von Elementen mit True auf 'setosa' Index und False anderswo.

Ich habe wie diese

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

möchte ich eine Liste mit 5 Elementen:

[True, True, False, False, False] 

Antwort

9

doch einfach eine Liste Verständnis verwenden:

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

, weil es kürzer ist und jeder, der sie sieht , gibt eine Stimme –

0

Sie könnten die .append() verwenden Funktion:

new_list = [] 

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

sorry @PeterWood – Veltro

2

könnten Sie map verwenden, die in Python 2 a list zurückgibt:

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

In Python 3, wenn Sie Notwendigkeit eine Liste:

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