GOOGLE ADS

Freitag, 22. April 2022

Python-Liste der Listen enthält Teilzeichenfolge

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...