Ich habe eine Liste von Listen, in denen jedes Element ein einzelnes Zeichen ist:Verbindungslisten Listen von Strings
ngrams = [['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'],
['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c']]
Daraus ich ['aa','ab','ac','ba','bb','bc','ca','cb','cc']
eine neue Single-Liste mit dem Inhalt generieren möchten. Die einzelnen Elemente jeder Liste werden aneinandergefügt, aber in umgekehrter Reihenfolge der Listen. Ich habe mit diesem kommen (wo np = 2
):
for cnt in range(np-2,-1,-1):
thisngrams[-1] = [a+b for (a,b) in zip(thisngrams[-1],thisngrams[cnt])]
Meine Lösung muss np
höher zu handhaben als nur 2. Ich erwarte, dass diese O (np) ist, was nicht schlecht ist. Kann jemand einen effizienteren und phytonischeren Weg vorschlagen, um das zu tun, was ich will (oder ist das ein guter pythonischer Ansatz)?
Oder 'map (''. Join, zip (* ngrams))' für mehr als zwei! – Ryan
Ich denke, Ryan hat was du willst, aber wenn du auch die Reihenfolge der Liste umkehren willst, willst du 'map (''. Join, zip (* reversed (ngram)))' –
Danke Carl, ich gerade benutze einfach das * um ngrams [:: - 1] zu entpacken :-) –