는 내가 같은 첫째 값이 모든 요소를 제거해야 큰 목록을Python에서 정렬되지 않은 목록에서 부분 복제본을 제거하려면 어떻게합니까?
[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]
있습니다. (한 번만 사용하십시오)
가장 효율적으로 수행하는 방법은 무엇입니까?
는 내가 같은 첫째 값이 모든 요소를 제거해야 큰 목록을Python에서 정렬되지 않은 목록에서 부분 복제본을 제거하려면 어떻게합니까?
[[1,.., ..],[2,...,...],[5,...,...],[1,...,...]]
있습니다. (한 번만 사용하십시오)
가장 효율적으로 수행하는 방법은 무엇입니까?
지금까지 본 첫 번째 값을 set
으로 유지하고 첫 번째 값이 집합에없는 경우에만 하위 목록 만 유지합니다.
set.add
항상 None
를 반환하기 때문에, keys.add(sublist[0]) or sublist
는 sublist
과 동일 None or sublist
과 동일합니다, 그래서 당신은 지능형리스트 내부의 설정 값을 추가 할 수 있도록하면서, 목록에 보관됩니다 어떤 영향을주지 않습니다. 목록의 순서가 문제가되지 않는 경우
keys = set()
biglist = [keys.add(sublist[0]) or sublist
for sublist in biglist
if sublist[0] not in keys]
del keys # if you don't need it any more
, 당신이 시도 할 수 있습니다 :
dict([(sublist[0], sublist) for sublist in biglist]).values()
또는
dict([(sublist[0], sublist) for sublist in reversed(biglist)]).values()
의 차이는 두 번째가에 대한 첫 번째 목록을 반환한다는 것입니다 동일한 첫 번째 값, 다른 하나는 반대입니다.
와우, 꽤 좋은 답변이며 작동합니다. 그것은 그것을 알아 내기 위해 나에게 약간의 최소 한도를졌다. 설명 주셔서 감사합니다. – siamii