2017-02-20 3 views
-2

Während ich eine Bedingung testen muss, ob einige Zeichenfolgen in der Liste vorhanden sind oder nicht, bekomme ich immer die gleiche Antwort.Konnte keine Zeichenfolge in der Liste finden

Wie in der folgenden Liste muss ich nach Zeichenfolge "Inaktiv" oder "Dead" suchen, wenn gefunden, etwas drucken.

list = [u'\u25cf multi-user.target - Multi-User System\n', u' Loaded: loaded (/lib/systemd/system/multi-user .target; static; vendor preset: enabled)\n', u' Active: active since Mon 2017-02-20 20:58:28 HKT; 1h 20min ago\n ', u'  Docs: man:systemd.special(7)\n', u'\n', u'Feb 20 20:58:28 ubuntu systemd[1]: Reached target Multi-User S ystem.\n'] 

Code:

if 'Inactive' or 'Dead' in list: 
    print "Service not active" 

Versucht, die Ausgabe in eine Datei Gießen, Variable usw., aber nichts schien zu funktionieren. Habe schon Lösungen über das Web durchgespielt aber kein Glück. Bitte helfen Sie.

+5

Schatten diese Bedingung tut nicht das, was du denkst, es tut – depperm

+1

'wenn 'Inaktiv' oder 'Dead' in der Liste:' ** bedeutet nicht ** wenn 'Inaktiv' in Liste oder 'Dead' in Liste: 'und immer zurück 'True' weil' bool ('Inactive') = True' –

+1

'falls vorhanden (i in der Liste für i in ['Inactive', 'Dead']):' ist, was Sie verwenden könnten. Bitte sehen Sie den obigen Link, um zu sehen, warum Ihr aktueller Zustand falsch ist. – CoryKramer

Antwort

0

Sie haben jedes Element einzeln zu prüfen, ob es nicht eine 100% ige Übereinstimmung vorhanden ist dh

for x in list: 
    if whatever in x: 
     print("found whatever") 

Außerdem sollten Sie einen anderen Namen als ‚Liste‘ andere holen, da es die eingebaute Liste

Verwandte Themen