[PYTHON] 목록의 목록에서 고유 항목 가져 오기? [복제]
PYTHON목록의 목록에서 고유 항목 가져 오기? [복제]
나는 다음과 같은 목록을 가지고있다 :
animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse'],['fox','monkey', 'zebra']]
중복 목록을 제거하는 가장 좋은 방법은 무엇입니까? 위의 예제를 사용하여이 코드를 생성 할 코드를 찾고 있습니다.
uniq_animal_groups = [['fox','monkey', 'zebra'], ['snake','elephant', 'donkey'],['beetle', 'mole', 'mouse']]
처음에는 set ()을 사용할 수 있다고 생각 했었지만 목록의 목록에서는 작동하지 않습니다. itertools를 사용하는 예도 보았습니다. 그러나이 코드는 완전히 명확하지 않았습니다. 도와 주셔서 감사합니다!
해결법
-
==============================
1.
uniq_animal_groups = set(map(tuple, animal_groups))
트릭을 수행 할 것입니다.하지만 일련의 목록 대신 튜플 세트를 사용하게 될 것입니다. (물론 목록을 목록으로 다시 변환 할 수 있지만 특별한 이유가 없으면 왜 귀찮을까요?)
-
==============================
2.목록을 튜플로 변환하면 세트로 변환 할 수 있습니다.
목록을 튜플로 변환하면 세트로 변환 할 수 있습니다.
본질적으로 :
uniq_animal_groups = set(map(tuple, animal_groups))
결과를 목록의 목록으로 보려면 다음을 시도하십시오.
uniq_animal_groups = [list(t) for t in set(map(tuple, animal_groups))]
또는:
uniq_animal_groups = map(list, set(map(tuple, animal_groups)))
-
==============================
3.내부 목록 정렬에 신경 쓰지 않으면 먼저 모든 것을 세트로 변환하십시오.
내부 목록 정렬에 신경 쓰지 않으면 먼저 모든 것을 세트로 변환하십시오.
uniq_animal_groups = map(list, set(map(tuple, map(set, animal_groups))))
from https://stackoverflow.com/questions/6926928/get-unique-items-from-list-of-lists by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 헬로쿠에서 Python 셀렌으로 ChromeDriver 실행하기 (0) | 2018.11.28 |
---|---|
[PYTHON] 판다에서 공백으로 구분 된 값을 읽는 방법 (0) | 2018.11.28 |
[PYTHON] 왜 내가 파이썬과 pip를 사용하여 sudo 없이는 할 수없는 일이 있습니까? (0) | 2018.11.28 |
[PYTHON] Anbook 2.0 Python API를 사용하여 플레이 북을 실행하는 방법 (0) | 2018.11.28 |
[PYTHON] Networkx Multigraph from_pandas_dataframe (0) | 2018.11.28 |