itertools 파이썬 모듈은 반복자에 대한 몇 가지 기본 구성 요소를 구현합니다. 그들이 말했듯이 "iterator algebra"를 형성합니다. 예상 했었지만 모듈을 사용하여 다음 반복을 수행하는 간결한 방법을 찾을 수 없었습니다. 예를 들어, 주문 실수의 목록을 감안할 때 리스트의 n 연속 요소 반복 (겹침)
a = [1.0,1.5,2.0,2.5,3.0]
는 ... 일부
n
값으로 그룹화 새로운 목록을 반환 (또는 반복),
2
b = [(1.0,1.5),(1.5,2.0),(2.0,2.5),(2.5,3.0)]
내가 일을 발견하는 방법을 말한다 이것은 다음과 같았다. 먼저 고르게 및 확률 인덱스, 두 목록을 분할 :
b = [(even, odd) for even, odd in zip(evens, odds)]
b = sorted(b + [(odd, even) for even, odd in zip(evens[1:], odds)])
본질적으로, 그것은 이동 평균에게 유사합니다
even, odds = a[::2], a[1::2]
그런 다음 새 목록을 구성.
itertools가 있든 없든 간결하게이 방법이 있습니까? 이 코드가되고있는
timestamp event
47.8 1a
60.5 1b
67.4 2a
74.5 2b
78.5 1a
82.2 1b
89.5 2a
95.3 2b
101.7 1a
110.2 1b
121.9 2a
127.1 2b
...
: PS :
응용 프로그램
이 일부 이벤트의 타임 스탬프 세트로 a
목록을 상상해
는 실험 기간 동안 발생 다른 시간 창과 일치하는 이벤트를 구분하는 데 사용됩니다. 지금은 2
연속 이벤트 사이의 데이터에 관심이 있습니다. 'n> 2'는 탐색 목적으로 만 사용됩니다.
@glibdud : 아, 네 말이 맞아. 단일 티는 여전히 단일 요소 튜플에 래핑됩니다. – user2357112