사용 groupby : 당신은 상관하지 않을 경우 주문하는 값이 처음으로 원래 목록에 등장 대해
>>> from itertools import groupby
>>> a = [1, 2, 3, 3, 5, 9, 6, 2, 8, 5, 2, 3, 5, 7, 3, 5, 8]
>>> [k for k, _ in groupby(sorted(a, key=lambda x: a.index(x)))]
[1, 2, 3, 5, 9, 6, 8, 7]
는, 예를 키 인수를 남겨주세요
>>> [k for k, _ in groupby(sorted(a))]
[1, 2, 3, 5, 6, 7, 8, 9]
groupby
으로 멋진 일을 할 수 있습니다.
>>> [k for k, v in groupby(sorted(a)) if len(list(v)) > 1]
[2, 3, 5, 8]
또는 주파수 사전을 구축하기 : 여러 번 표시되는 항목을 확인하려면
>>> {k: len(list(v)) for k, v in groupby(sorted(a))}
{1: 1, 2: 3, 3: 4, 5: 4, 6: 1, 7: 1, 8: 2, 9: 1}
itertools 모듈에서 매우 유용한 기능이 있습니다 chain
, tee
및 product
이 몇 가지 이름은 !
'b가 없으면 항목이 실행됩니다.'순간에 'b'가 비어 있기 때문에. 목록 이해력은 메모리에서 이루어지며 그 결과는 마지막에 'b'에 할당됩니다. –
[알고리즘 - 목록에서 중복 요소를 효율적으로 삭제하는 방법?] (http://stackoverflow.com/questions/1801459/algorithm-how-to-delete-duplicate-elements-in-a-list-efficiently) –
즉, 목록 이해가 루프처럼 작동하지 않는다는 의미입니까? – Alinwndrld