Ceci est une question de conseils pour jouer au golf en python .
Supposons que vous ayez deux listes de chaînes et que vous souhaitiez concaténer les entrées correspondantes de chaque liste. Par exemple avec a=list("abcd")
et b=list("1234")
, calculez ["a1","b2","c3","d4"]
.
Ceci est trivial dans les langages de programmation basés sur des tableaux, où les opérations s'appliquent généralement par membre aux listes. Par exemple, dans ma langue de golf Pip , le code est simple a.b
. Mais en Python, ce n'est pas si facile.
La façon Pythonique est probablement d'utiliser zip
et une liste de compréhension (25 caractères):
[x+y for x,y in zip(a,b)]
Une autre méthode consiste map
à utiliser une fonction lambda (23):
map(lambda x,y:x+y,a,b)
Ce qui suit est le plus court que j'ai trouvé (21):
map("".join,zip(a,b))
Existe-t-il une méthode plus courte?
Supposons que les listes soient de la même longueur et qu'une sorte d'itérable soit tout ce qui est nécessaire (donc un map
objet va bien en Python 3).