2016-04-22 8 views
-1

Ich versuche etwas ganz einfaches, aber nicht, um das Ergebnis zu bekommen, das ich erwarte.Boolescher Operator über eine ganze Liste (Python)

Ich habe eine Liste von Zeichenfolgen und möchte einen Vergleich über die gesamte Liste in einem einzigen Ausdruck durchführen, ohne auf eine for-Schleife zurückgreifen zu müssen.

z.B.

>>> str = ['P','R','R'] 
>>> [str == 'P' for i in str] 
[False, False, False] 

Offensichtlich Ich suche nach [True, False, False] in dieser Situation, was mache ich falsch?

+0

Sie haben zu ändern, um ein Schlüsselwort 'str' als Variable verwendet. Ändern Sie das zu etwas anderem –

+5

Sie möchten stattdessen gegen 'i' testen ... –

Antwort

3

Ich denke, Sie brauchen prism_bool = [str == 'P' for i in str] zu

prism_bool = [i == 'P' for i in str]