Esta é uma pergunta de dicas para jogar golfe em python .
Suponha que você tenha duas listas de cadeias e deseja concatenar as entradas correspondentes de cada lista. Por exemplo, com a=list("abcd")
e b=list("1234")
, calcule ["a1","b2","c3","d4"]
.
Isso é trivial nas linguagens de programação baseadas em array, onde as operações geralmente se aplicam aos membros das listas. Por exemplo, no meu idioma de golfe Pip , o código é simples a.b
. Mas em Python, não é tão fácil.
A maneira Pythonic é provavelmente usar zip
e compreender uma lista (25 caracteres):
[x+y for x,y in zip(a,b)]
Outro método é map
com uma função lambda (23):
map(lambda x,y:x+y,a,b)
O seguinte é o mais curto que eu vim com (21):
map("".join,zip(a,b))
Existe algum método mais curto?
Suponha que as listas tenham o mesmo comprimento e que seja necessário algum tipo de iterável (portanto, um map
objeto é bom no Python 3).