두 개의 문자열 목록이 있고 각 목록에서 해당 항목을 연결하려고한다고 가정하십시오. 예를 들어 a=list("abcd")
및 b=list("1234")
로 계산 ["a1","b2","c3","d4"]
합니다.
이것은 배열 기반 프로그래밍 언어에서 사소한 일이며 일반적으로 작업이 목록에 멤버 단위로 적용됩니다. 예를 들어 내 골프 언어 Pip 에서 코드는 간단 a.b
합니다. 그러나 파이썬에서는 그렇게 쉽지 않습니다.
파이썬 방식은 아마도 zip
목록 이해 (25 문자) 를 사용 하는 것입니다 .
[x+y for x,y in zip(a,b)]
또 다른 방법은 map
람다 함수 (23)입니다.
map(lambda x,y:x+y,a,b)
다음은 내가 생각해 낸 가장 짧은 것입니다 (21).
map("".join,zip(a,b))
더 짧은 방법이 있습니까?
리스트의 길이가 같고 어떤 종류의 반복 가능한 것이 필요하다고 가정합니다 (따라서 map
파이썬 3 에서는 객체가 좋습니다).
의 중복 가능성 파이썬에서 골프 팁
—
마스트
@ 마스트 팁 목록에이 특정 질문에 대한 답변이 포함되어 있습니까?
—
마틴 엔더
@ MartinBüttner 그렇지 않다면 그렇게해야합니다. 혼란을 방지하고 모든 속임수 등을 유지합니다.
—
Mast