Esta es una pregunta de consejos para jugar golf en python .
Suponga que tiene dos listas de cadenas y desea concatenar las entradas correspondientes de cada lista. Por ejemplo con a=list("abcd")
y b=list("1234")
, calcular ["a1","b2","c3","d4"]
.
Esto es trivial en los lenguajes de programación basados en matrices, donde las operaciones generalmente se aplican a los miembros en las listas. Por ejemplo, en mi lenguaje de golf Pip , el código es simple a.b
. Pero en Python, no es tan fácil.
La forma pitónica es probablemente usar zip
y una lista de comprensión (25 caracteres):
[x+y for x,y in zip(a,b)]
Otro método es map
con una función lambda (23):
map(lambda x,y:x+y,a,b)
El siguiente es el más corto que se me ocurrió (21):
map("".join,zip(a,b))
¿Hay algún método más corto?
Suponga que las listas tienen la misma longitud y que todo lo que se necesita es algún tipo de iterable (por lo que un map
objeto está bien en Python 3).