Ich habe die list_of_lists und muss die Zeichenfolge abrufen, die „height" in den Unterlisten enthält, und wenn es überhaupt keine Höhe gibt, muss ich „nvt" für die gesamte Unterliste abrufen.
Ich habe folgendes versucht:
list_of_lists = [['width=9','length=3'],['width=6','length=4','height=4']]
_lists = []
for list in list_of_lists:
list1 = []
for st in list:
if ("height" ) in st:
list1.append(st)
else:
list1.append('nvt')
_lists.append(list1)
OUT = _lists
Das Ergebnis, das ich haben muss, ist:
_lists = ['nvt', 'height=4']
was ich bekomme ist:
_lists = [['nvt','nvt'],['nvt','nvt','height=4']]
Lösung des Problems
Dies ist ein guter Fall für die Implementierung eines for/else-Konstrukts wie folgt:
list_of_lists = [['width=9','length=3'],['width=6','length=4','height=4']]
result = []
for e in list_of_lists:
for ss in e:
if ss.startswith('height'):
result.append(ss)
break
else:
result.append('nvt')
print(result)
Ausgabe:
['nvt', 'height=4']
Notiz:
Dies könnte wahrscheinlich mit einem Listenverständnis erfolgen, aber ich denke, dies ist offensichtlicher und hat wahrscheinlich keinen signifikanten Unterschied in Bezug auf die Leistung
Keine Kommentare:
Kommentar veröffentlichen