사전 목록에서 중복 제거 (고유 값 사용)

바실리

각각 파일을 설명하는 사전 목록이 있습니다 (파일 형식, 파일 이름, 파일 크기, ... 및 파일의 전체 경로 [ 항상 고유 ]). 목표는 동일한 파일의 사본을 설명하는 하나의 사전제외한 모든 사전제외 하는 것입니다. 사본이 몇 개 있든 상관없이 파일 당 하나의 사전 (항목) 만 원합니다.

즉, 2 개 이상의 딕셔너리가 단일 키 ( 예 : 경로 )에서만 다른 경우-그중 하나만 남겨 둡니다.

예를 들어 다음은 소스 목록입니다.

src_list = [{'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/'},
            {'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/mydir'},
            {'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/'},
            {'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/mydir2'}]

결과는 다음과 같습니다.

dst_list = [{'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/'},
            {'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/mydir2'}]
tobias_k

다른 사전을 사용 하여 "무시 된"키가 없는 목록의 사전을 실제 사전 에 매핑합니다 . 이렇게하면 각 종류 중 하나만 유지됩니다. 물론 딕셔너리는 해시 할 수 없으므로 대신 (정렬 된) 튜플을 사용해야합니다.

src_list = [{'filename': 'abc', 'filetype': '.txt', 'path': 'C:/'},
            {'filename': 'abc', 'filetype': '.txt', 'path': 'C:/mydir'},
            {'filename': 'def', 'filetype': '.zip', 'path': 'C:/'},
            {'filename': 'def', 'filetype': '.zip', 'path': 'C:/mydir2'}]
ignored_keys = ["path"]
filtered = {tuple((k, d[k]) for k in sorted(d) if k not in ignored_keys): d for d in src_list}
dst_lst = list(filtered.values())

결과는 다음과 같습니다.

[{'path': 'C:/mydir', 'filetype': '.txt', 'filename': 'abc'}, 
 {'path': 'C:/mydir2', 'filetype': '.zip', 'filename': 'def'}]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

주어진 키의 값 고유성을 기반으로 사전 목록에서 중복 사전 제거

분류에서Dev

사전 목록에서 중복 키를 제거하고 값이 최대 인 키-값만 유지합니다.

분류에서Dev

특정 키 및 값을 기반으로 목록에서 중복 사전 제거

분류에서Dev

Python 값을 기반으로 사전 목록에서 중복 제거

분류에서Dev

사전에서 값별로 중복 항목 제거

분류에서Dev

중복 키를 보유하는 사전에서 값을 표시하고 제거하는 방법

분류에서Dev

중첩 된 사전 목록에서 중복 제거

분류에서Dev

제네릭을 사용하는 목록에서 중복 제거

분류에서Dev

목록을 키로 사용하여 중첩 목록에서 중복 제거

분류에서Dev

세트를 사용하지 않고 중첩 된 목록에서 중복을 제거합니다.

분류에서Dev

Pandas에서 유사 중복 제거

분류에서Dev

preg_replace () 사용 방법 URL에서 중복 값 제거

분류에서Dev

목록 내 중첩 된 사전에서 고유 값의 키 가져 오기

분류에서Dev

파이썬의 중첩 사전에서 키 값을 기반으로 목록에서 사전 제거

분류에서Dev

Python, 두 목록에서 유사한 값 제거

분류에서Dev

Excel : 전체 시트의 모든 셀 값을 새 시트로 복사하고, 단일 값 목록으로 정렬 및 중복 제거

분류에서Dev

사전 목록을 반복하고 Python의 사전에서 유사한 값을 식별합니다.

분류에서Dev

튜플 사전에서 중복 제거

분류에서Dev

복잡한 중첩 사전 / 목록에서 키, 값 쌍 검색

분류에서Dev

SQL에서 DISTINCT를 사용하지 않고 중복 값을 제거하는 방법은 무엇입니까?

분류에서Dev

set ()을 사용하지 않고 튜플에서 중복 제거

분류에서Dev

목록을 반복하는 동안 목록에서 유사한 요소를 계산하고 제거합니다.

분류에서Dev

python 사전의 목록 값에서 'nan'제거

분류에서Dev

Pandas를 사용하여 중복 값을 제거하고 하나를 유지하는 방법

분류에서Dev

튜플을 사용하여 VBA의 목록에서 중복 좌표 제거

분류에서Dev

js를 사용하여 연결된 목록에서 중복 제거

분류에서Dev

Java Lambda 함수를 사용하여 Java 목록에서 중복 번호 제거

분류에서Dev

Java의 배열 목록에서 연속 중복 요소 제거 (panache 사용)

분류에서Dev

linq를 사용하여 필드의 목록에서 중복 제거

Related 관련 기사

  1. 1

    주어진 키의 값 고유성을 기반으로 사전 목록에서 중복 사전 제거

  2. 2

    사전 목록에서 중복 키를 제거하고 값이 최대 인 키-값만 유지합니다.

  3. 3

    특정 키 및 값을 기반으로 목록에서 중복 사전 제거

  4. 4

    Python 값을 기반으로 사전 목록에서 중복 제거

  5. 5

    사전에서 값별로 중복 항목 제거

  6. 6

    중복 키를 보유하는 사전에서 값을 표시하고 제거하는 방법

  7. 7

    중첩 된 사전 목록에서 중복 제거

  8. 8

    제네릭을 사용하는 목록에서 중복 제거

  9. 9

    목록을 키로 사용하여 중첩 목록에서 중복 제거

  10. 10

    세트를 사용하지 않고 중첩 된 목록에서 중복을 제거합니다.

  11. 11

    Pandas에서 유사 중복 제거

  12. 12

    preg_replace () 사용 방법 URL에서 중복 값 제거

  13. 13

    목록 내 중첩 된 사전에서 고유 값의 키 가져 오기

  14. 14

    파이썬의 중첩 사전에서 키 값을 기반으로 목록에서 사전 제거

  15. 15

    Python, 두 목록에서 유사한 값 제거

  16. 16

    Excel : 전체 시트의 모든 셀 값을 새 시트로 복사하고, 단일 값 목록으로 정렬 및 중복 제거

  17. 17

    사전 목록을 반복하고 Python의 사전에서 유사한 값을 식별합니다.

  18. 18

    튜플 사전에서 중복 제거

  19. 19

    복잡한 중첩 사전 / 목록에서 키, 값 쌍 검색

  20. 20

    SQL에서 DISTINCT를 사용하지 않고 중복 값을 제거하는 방법은 무엇입니까?

  21. 21

    set ()을 사용하지 않고 튜플에서 중복 제거

  22. 22

    목록을 반복하는 동안 목록에서 유사한 요소를 계산하고 제거합니다.

  23. 23

    python 사전의 목록 값에서 'nan'제거

  24. 24

    Pandas를 사용하여 중복 값을 제거하고 하나를 유지하는 방법

  25. 25

    튜플을 사용하여 VBA의 목록에서 중복 좌표 제거

  26. 26

    js를 사용하여 연결된 목록에서 중복 제거

  27. 27

    Java Lambda 함수를 사용하여 Java 목록에서 중복 번호 제거

  28. 28

    Java의 배열 목록에서 연속 중복 요소 제거 (panache 사용)

  29. 29

    linq를 사용하여 필드의 목록에서 중복 제거

뜨겁다태그

보관