[PYTHON] 파이썬 : 목록의 고유성
PYTHON파이썬 : 목록의 고유성
이러한 데이터 객체를 고유하게 구현하는 효율적인 방법이 무엇인지 궁금합니다.
testdata =[ ['9034968', 'ETH'], ['14160113', 'ETH'], ['9034968', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15724032', 'ETH'], ['15481740', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['10307528', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['15481740', 'ETH'], ['15379365', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15379365', 'ETH']
]
각 데이터 쌍에 대해 왼쪽 숫자 문자열 PLUS는 오른쪽에있는 유형은 데이터 요소의 고유성을 나타냅니다. 그리고 testdata와 같은 목록을 반환하지만 고유 항목 만 존재합니다.
문안 인사
해결법
-
==============================
1.세트를 사용할 수 있습니다 :
세트를 사용할 수 있습니다 :
unique_data = [list(x) for x in set(tuple(x) for x in testdata)]
또한 주문을 보존하거나 보존하지 않는 여러 가지 방법을 벤치 마크하는이 페이지를 볼 수 있습니다.
-
==============================
2.나는 @ Mark의 대답을 시도하고 오류가 발생했습니다. 목록과 각 요소를 하나의 튜플로 변환하면 제대로 작동합니다. 비록 이것이 최선의 방법인지 확실하지 않습니다.
나는 @ Mark의 대답을 시도하고 오류가 발생했습니다. 목록과 각 요소를 하나의 튜플로 변환하면 제대로 작동합니다. 비록 이것이 최선의 방법인지 확실하지 않습니다.
list(map(list, set(map(lambda i: tuple(i), testdata))))
물론 똑같은 것이 목록 이해력을 사용하여 표현 될 수 있습니다.
[list(i) for i in set(tuple(i) for i in testdata)]
Python 2.6.2를 사용하고 있습니다.
최신 정보
@Mark는 그 이후로 그의 대답을 바 꾸었습니다. 그의 현재 답변은 튜플을 사용하고 작동합니다. 그래서 내 것이다 :)
업데이트 2
@Mark 덕분에. 튜플 목록이 아닌 목록을 반환하도록 내 대답을 변경했습니다.
-
==============================
3.
import sets testdata =[ ['9034968', 'ETH'], ['14160113', 'ETH'], ['9034968', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15724032', 'ETH'], ['15481740', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['10307528', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['15481740', 'ETH'], ['15379365', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15379365', 'ETH']] conacatData = [x[0] + x[1] for x in testdata] print conacatData uniqueSet = sets.Set(conacatData) uniqueList = [ [t[0:-3], t[-3:]] for t in uniqueSet] print uniqueList
-
==============================
4.@Mark Byers 솔루션을 약간 확장하면 하나의 목록 이해 및 유형 변환만으로 필요한 것을 얻을 수 있습니다.
@Mark Byers 솔루션을 약간 확장하면 하나의 목록 이해 및 유형 변환만으로 필요한 것을 얻을 수 있습니다.
testdata = list(set(tuple(x) for x in testdata))
또한, 많은 사람들이 혼동을 일으킬 정도로 목록 작성을 원하지 않는다면, for 루프에서 같은 것을 할 수 있습니다 :
for i, e in enumerate(testdata): testdata[i] = tuple(e) testdata = list(set(testdata))
from https://stackoverflow.com/questions/3724551/python-uniqueness-for-list-of-lists by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Cython : (왜 / 언제) 인덱싱에 Py_ssize_t를 사용하는 것이 더 좋습니까? (0) | 2018.10.26 |
---|---|
[PYTHON] 셸 명령 실행 및 출력 캡쳐 (0) | 2018.10.26 |
[PYTHON] PyCharm에서 Django 프로젝트를 설치하는 방법 (0) | 2018.10.26 |
[PYTHON] matplotlib 3.0.0, 'matplotlib'에서 이름 'get_backend'가져올 수 없습니다. (0) | 2018.10.26 |
[PYTHON] Matplotlib - 선을 투명하게 만들지 않고 마커의 얼굴색을 투명하게 만드는 방법 (0) | 2018.10.26 |