Ich habe dieseMultiple If/else in Liste Verständnis Python
s = ['son','abc','pro','bro']
b = ['son','bro']
c = ['pro','quo']
Erwartete Ausgabe dieser ist. Wenn Elemente in der Ausgabe index(item_in_s)
sind, wenn sie in der Liste b
vorhanden ist. oder index(item_in_s)+10
wenn Artikel ist in c
[0,12,3]
habe ich versucht, dieses
index_list = [s.index(item) if item in b else s.index(item)+10 if item in c for item in s]
print(index)
Aber anscheinend ist ein Syntaxfehler. Also habe ich versucht, diese
index_list = [s.index(item) if item in b else s.index(item)+10 for item in s if item in c]
print(index)
Ausgang:
[12]
Dies ändert sich nur die ganze Logik. Obwohl ich dies tun könnte
fin = [s.index(item) if item in b else s.index(item)+10 if item in c else '' for item in s]
fin = [item for item in fin if item!='']
print(fin)
gewünschte Ausgabe erhalten:
[0, 12, 3]
Aber wie zu bekommen, was ich in Liste Verständnis will oder selbst ist es so etwas wie else continue
in Listenkomprehensionen? Irgendwelche Erklärungen würden sehr geschätzt werden.
Ich verstehe nicht wirklich, was Sie hier tun wollen. – Sam
einfach etwas wie '[x wenn x in list1 else x + 10 wenn x in list2 für x in my_list]' was einen Syntaxfehler ergibt. – void
Ich möchte etwas wie '[x wenn x in list1 else x + 10, wenn x in list2 sonst für x in my_list passierst]' aber ich weiß pass gibt syntax fehler auch. Irgendwelche Alternativen? – void