Wie 'pythonic-ly', schalte ich diese:Liste der Listen in zur Liste von Tupeln, neu geordnet
[[x1,y1], [x2,y2]]
In:
[(x1,x2),(y1,y2)]
Wie 'pythonic-ly', schalte ich diese:Liste der Listen in zur Liste von Tupeln, neu geordnet
[[x1,y1], [x2,y2]]
In:
[(x1,x2),(y1,y2)]
Verwenden Sie ein zip
und Auspacken Betreiber.
>>> l = [['x1','y1'], ['x2','y2']]
>>> zip(*l)
[('x1', 'x2'), ('y1', 'y2')]
Behandelt mehr Fall in Testfall geben.
Wenn es Einträge in der Liste gibt, die unterschiedliche Länge haben.
In [19]: a
Out[19]: [[1, 2], [3, 4], [5, 6], [7, 8, 9]]
In [20]: import itertools
In [21]: b = itertools.izip_longest(*a)
In [22]: list(b)
Out[22]: [(1, 3, 5, 7), (2, 4, 6, 8), (None, None, None, 9)]
@BhargavRao: Aktualisierte Antwort, und wer abwählte, kann auch überprüfen und lassen Sie mich wissen, wenn es ein Problem gibt :) –
@Bhargav Rao: Kannst du erklären, wie '*' funktioniert oder einige Links geben, die '*' erklären? –
@Vivek Sie können hier mehr über den '*' Operator erfahren https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists –
Abgesehen davon, dass diese Frage speziell von 'zip' profitiert Zurückgeben einer Liste von Tupel, allgemeiner 'zip (* X)' kann als die Matrix-Transponierte von "X" gedacht werden. Das ist nützlich für Leute, die viel Lineare Algebra gemacht haben und daher natürlich an die erforderliche Umordnung des Fragestellers als Transposition denken. –