Questa è una domanda di consigli per giocare a golf in Python .
Supponiamo di avere due elenchi di stringhe e di concatenare le voci corrispondenti da ciascun elenco. Ad esempio con a=list("abcd")
e b=list("1234")
, calcola ["a1","b2","c3","d4"]
.
Questo è banale nei linguaggi di programmazione basati su array, in cui le operazioni si applicano generalmente agli elenchi in modo membro. Ad esempio, nella mia lingua da golf Pip , il codice è semplicemente a.b
. Ma in Python non è così facile.
Il modo Pythonic è probabilmente quello di usare zip
e una comprensione della lista (25 caratteri):
[x+y for x,y in zip(a,b)]
Un altro metodo è map
con una funzione lambda (23):
map(lambda x,y:x+y,a,b)
Quello che segue è il più breve che mi è venuto in mente (21):
map("".join,zip(a,b))
Esiste un metodo più breve?
Supponiamo che le liste abbiano la stessa lunghezza e che sia sufficiente una sorta di iterabile (quindi un map
oggetto va bene in Python 3).