2013-10-11 8 views
1

나는 목록 실제로 2-D 포인트 시리즈의 1-D 표현입니다Python - 목록의 튜플에 인접 요소를 그룹화 하시겠습니까?

A=[9.6, 7.9, 19.4, 13.3, 31.0, 16.1, 44.3, 16.4, 55.7, 16.5, 66.6, 16.7, 77.7, 17.7, 88.7, 19.0, 101.8, 21.0] 

에게 있습니다. 짝수 인덱스 값은 x 값이고, 홀수 인덱스 값은 y입니다.

지금

B=[(9.6, 7.9), (19.4, 13.3), (31.0, 16.1), (44.3, 16.4), (55.7, 16.5), (66.6, 16.7), (77.7, 17.7), (88.7, 19.0), (101.8, 21.0)] 

가장 파이썬 방법으로 그렇게하는 무엇에 A 변환 할 ?

+0

@kojiro 광산은 튜플입니다. 저것은 목록입니다. –

+1

그러나 그 질문에 주어진 몇 가지 솔루션은 튜플을 생성 할뿐만 아니라 거의 모든 튜플을 '튜플'을 호출하여 목록 대신 튜플로 쉽게 변환 할 수 있습니다. – DSM

답변

5

에 대한

@Igonato이 코멘트에 제안
B=[(A[2*i],A[2*i+1]) for i in range(len(A)/2)] 

나, 같은 말을 할 수있는 깔끔한 방법입니다 방법 :

B=[(A[i],A[i+1]) for i in range(0,len(A),2)] 
+0

범위 (0, len (A), 2)에서 i에 대해 B = [(A [i], A [i + 1])을 제안합니다. – Igonato

+0

닉네임과 범위 (len (A), 2)는 wrong =) – Igonato

+0

@Igonato 감사합니다 ... 죄송합니다. ;) –

6
In [60]: A=[9.6, 7.9, 19.4, 13.3, 31.0, 16.1, 44.3, 16.4, 55.7, 16.5, 66.6, 16.7, 77.7, 17.7, 88.7, 19.0, 101.8, 21.0] 

In [61]: zip(A[::2], A[1::2]) 
Out[61]: 
[(9.6, 7.9), 
(19.4, 13.3), 
(31.0, 16.1), 
(44.3, 16.4), 
(55.7, 16.5), 
(66.6, 16.7), 
(77.7, 17.7), 
(88.7, 19.0), 
(101.8, 21.0)] 

In [62]: zip(itertools.islice(A, 0, len(A), 2), itertools.islice(A, 1, len(A), 2)) 
Out[62]: 
[(9.6, 7.9), 
(19.4, 13.3), 
(31.0, 16.1), 
(44.3, 16.4), 
(55.7, 16.5), 
(66.6, 16.7), 
(77.7, 17.7), 
(88.7, 19.0), 
(101.8, 21.0)] 
4
>>> A = [9.6, 7.9, 19.4, 13.3, 31.0, 16.1, 44.3, 16.4, 55.7, 16.5, 66.6, 16.7, 77.7, 17.7, 88.7, 19.0, 101.8, 21.0] 
>>> zip(*[iter(A)]*2) 
[(9.6, 7.9), (19.4, 13.3), (31.0, 16.1), (44.3, 16.4), (55.7, 16.5), (66.6, 16.7), (77.7, 17.7), (88.7, 19.0), (101.8, 21.0)] 
관련 문제