EingangListe Verständnis in Python if/else
['27', ' 5', '6', ' 0', ' 0', '', '', '', '','','','','','34','32','','','','']
Ich möchte meine Ausgabe, so etwas sein. Die Logik besteht darin, 4 aufeinanderfolgende doppelte leere Zeichenfolgen '' durch einzelne neue Elemente zu ersetzen, während der Rest der Elemente beibehalten wird.
['27', ' 5', '6', ' 0', ' 0', 'LOL','LOL', '34','32','LOL']
Ich bin verwirrt, warum dies gibt nur die Ausgabe als
['LOL','LOL','LOL']
Mein Code ist wie folgt:
from itertools import groupby,repeat
L = ['27', ' 5', '6', ' 0', ' 0', '', '', '', '','','','','','34','32','','','','']
grouped_L = [(k, len(list(g))) for k,g in groupby(L)]
final_list = [z if x=='' else x for x,y in grouped_L for z in repeat('LOL',(y//4)) ]
print(final_list)
Was ist die Logik hinter der erwarteten Ausgabe? Ihr Code schlägt fehl, weil 'repeat (..., (y // 4))' zu * zero * Wiederholungen für jedes 'y <4 'führt, so dass der linke Ausdruck überhaupt nicht ausgeführt wird (eine Schleife) über null Elemente erzeugt keine Iterationen). –
Wohin verschwanden die "34" und "32"? Und warum erzeugt das aufeinanderfolgende "0", "0" kein "LOL"? – poke
Mein böser Mann. Ich habe vergessen, sie zu bearbeiten. Es tut uns leid!! – void