Bu python golf için ipuçları bir soru .
İki dizgi listeniz olduğunu ve her listeden karşılık gelen girişleri birleştirmek istediğinizi varsayalım. Örneğin, a=list("abcd")
ve b=list("1234")
ile hesaplayın ["a1","b2","c3","d4"]
.
İşlemlerin listelere genellikle üye olarak uygulandığı dizi tabanlı programlama dillerinde bu önemlidir. Örneğin, Pip dilimde , kod basitçe a.b
. Ama Python'da bu o kadar kolay değil.
Pythonic yolu muhtemelen kullanmak zip
ve bir liste kavrama (25 karakter):
[x+y for x,y in zip(a,b)]
Başka bir yöntem map
lambda fonksiyonudur (23):
map(lambda x,y:x+y,a,b)
Aşağıdakiler geldiğim en kısa şey (21):
map("".join,zip(a,b))
Daha kısa bir yöntem var mı?
Listelerin aynı uzunlukta olduğunu ve gerekli olan her şeyin tekrarlanabilir olduğunu varsayalım ( map
Python 3'te bir nesne iyi).