J'essaie d'obtenir le moyen le plus court (caractère possible) pour obtenir la liste 3.
La liste 1 et la liste 2 m'ont déjà été fournies comme arguments et ont la même longueur.
l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c', 'd', 'e']
Et la liste 3 devrait ressembler (oui, il doit s'agir d'une liste):
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
donnéel1 = [1, 2, 3, 4, 5]
etl2 = ['a', 'b', 'c', 'd', 'e']
déjà attribuée, ou l'idée est-ellel1
etl2
pourrait-elle être deux listes de même longueur?Réponses:
Zip et somme
Essayez-le en ligne!
Zips les deux listes ensemble puis ajoute tous les tuples pour faire une liste combinée. Le zip ne fonctionne que si les listes sont garanties de la même taille, sinon il tronque la liste la plus longue.
Ajout de l'environnement
[* ]
pour le transformer en liste comme le suggère FryAmTheEggman.la source
list
au lieu de[* (...) ]
+3 octets.Affectation de tranche
C'est trois octets de plus que d'utiliser la solution de Jo King
c=[*sum(zip(b,a),())]
, mais c'est astucieux. Cela pourrait être plus court dans la situation (je ne peux pas penser à où, cependant).la source