난수가 포함 된 목록이 있습니다. 이 목록을 반복하고 싶습니다. 숫자와 연속 번호가 하나의 숫자 단계 안에 있으면 하위 목록으로 연결하고 싶습니다. 예를 들어파이썬 목록에서 인접한 숫자를 병합하십시오.
:
는input = [1,2,4,6,7,8,10,11]
output = [[1,2],[4],[6,7,8],[10,11]]
입력 목록은 항상 증가하는 순서로 정렬 긍정적 인 int 치의 포함됩니다. here에서 일부 코드를 시도했습니다. 나는 목록에서 매 2 개 항목을 CONCAT 수 있지만
initerator = iter(inputList)
outputList = [c + next(initerator, "") for c in initerator]
, 나는 지능형리스트에서 적절한 if
를 추가 할 수없는 것.
파이썬 버전 =은 "분할"인덱스와 다음 슬라이스 발견 3.4
한 줄짜리 : itertools.groupby (enumerate (inputList), lambda x : x [1] - x [0])]]의 _ [grp]에 대한 [[x의 경우 x, grp의 경우]. –
고마워,이게 좋아 보인다 ...... 그리고 나는 일을 잘 이해하고있다 ....... 그렇지만 내가 각 엔트리에 글자를 붙이면 입력 = [a1, a2, a4, b6 , [c7, c8, c10, d11]에서 문자로 그룹화하고 [a1, a2], [a4], [b6], [c7, c8], [c10], [d11] ... 나는 "groupby"와 "enumerate"방법을 완전히 이해하지 못하는데, 아마도이 방법을 사용할 수없는 이유 일 것입니다 ... 다시 한 번 감사드립니다. – Eoin