Ich versuche, den kürzesten Weg (Zeichen möglich) zu finden, um Liste 3 zu erhalten.
Liste 1 und Liste 2 sind mir bereits als Argumente gegeben und gleich lang.
l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c', 'd', 'e']
Und Liste 3 sollte so aussehen (ja, es muss eine Liste sein):
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
gegebenl1 = [1, 2, 3, 4, 5]
undl2 = ['a', 'b', 'c', 'd', 'e']
bereits vergeben, oder ist die Idee , dassl1
undl2
konnte zwei beliebigen Listen der gleichen Länge sein?Antworten:
Zip und Summe
Probieren Sie es online aus!
Zippt die beiden Listen zusammen und fügt dann alle Tupel hinzu, um eine kombinierte Liste zu erstellen. Die Zip-Datei funktioniert nur, wenn die Listen garantiert dieselbe Größe haben. Andernfalls wird die längere Liste abgeschnitten.
Die Umgebung wurde hinzugefügt, um
[* ]
sie in eine Liste umzuwandeln, wie von FryAmTheEggman vorgeschlagen.quelle
list
anstelle von[* (...) ]
+3 Bytes verwenden.Slice-Zuordnung
Dies ist drei Bytes länger als die Verwendung von Jo Kings Lösung
c=[*sum(zip(b,a),())]
, aber es ist geschickt. Es könnte situativ kürzer sein (ich kann mir allerdings nicht vorstellen, wo).quelle