의 난의 형태로,이야, 튜플의 배열이 있다고 가정 해 봅시다 :파이썬에서 배열의 첫 번째 요소를 가져오고 싶습니까?
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
그리고 난 행마다 첫 번째 요소로 구성된 또 다른 튜플, t을 반환하려면 :
t = (1, 2, 3)
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까? 물론 s을 반복 할 수는 있지만, 더 매끄러운 방법이 있습니까?
의 난의 형태로,이야, 튜플의 배열이 있다고 가정 해 봅시다 :파이썬에서 배열의 첫 번째 요소를 가져오고 싶습니까?
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
그리고 난 행마다 첫 번째 요소로 구성된 또 다른 튜플, t을 반환하려면 :
t = (1, 2, 3)
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까? 물론 s을 반복 할 수는 있지만, 더 매끄러운 방법이 있습니까?
호
t = tuple(x[0] for x in s)
시오 의해 주어진리스트 통합 방법이 깨끗하다. 그냥 재미로에 대한
, 당신은 할 수 :
zip(*s)[0]
*s
는 인수 목록에 s
을 확장합니다. 그래서
zip((1, 23, 34),(2, 34, 44), (3, 444, 234))
그리고 zip
반환 각 튜플은 각 목록에서 nth
항목을 포함 n
튜플에 해당합니다.
import itertools
s = ((1, 23, 34),(2, 34, 44), (3, 444, 234))
print(next(itertools.izip(*s)))
itertools.izip
이터레이터를 반환합니다. next
함수는 이터레이터에서 다음 (이 경우에는 첫 번째) 요소를 반환합니다.
파이썬 2.x에서 zip
은 튜플을 반환합니다. izip
은 반복자가 필요할 때까지 내용을 생성하지 않으므로 메모리 사용량이 적습니다.
파이썬 3에서 zip
은 반복자를 반환합니다.
사실 그것은 생성자 표현식이지 목록 이해력이 아닙니다. –