Angenommen, ich habe eine Anzahl von Listen von Paaren (int, str), nicht unbedingt von der gleichen Länge. Die einzige Einschränkung dabei ist, dass die Listen in aufsteigender Reihenfolge nach ihren ganzzahligen Teilen sortiert werden:Iterieren durch mehrere sortierte Listen in der Reihenfolge
a = [(1, 'a'), (4, 'a'), (6, 'b'), (7, 'c'), (12, 'a')]
b = [(5, 'd'), (10, 'c'), (11,'e')]
c = [(0, 'b'), (3, 'd')]
Was würde ich tun möchte, ist die Textelemente in der Reihenfolge zu emittieren, in denen ihre entsprechenden ganzzahligen Elemente in dieser dh auftreten Fall:
(0, 'b'), (1, 'a'), (3, 'd'), (4, 'a'), ...
ich frage mich, ob es eine offensichtliche (schön + pythonic) Art und Weise ist dies nur mit Iteratoren von a
, b
und c
zu tun? Ich habe mir itertools
angesehen, kann aber nicht sofort sehen, wie man die Funktionalität in diesem Fall benutzt. Die Listen a
, b
könnte c
sehr groß sein, so würde ich dies, ohne sie in den Speicher einzulesen zu tun und dann Sortierung ...
Es gibt keine Möglichkeit, es zu tun, ohne alle zu lesen. Wenn Sie nicht alle lesen, können Sie nicht wissen, ob der, den Sie nicht gelesen haben, eigentlich zuerst herausgekommen sein sollte. Wenn sie Listen sind, sind sie ohnehin alle im Speicher. – BrenBarn