Hướng dẫn python find duplicate values in list of dictionaries - python tìm các giá trị trùng lặp trong danh sách từ điển

Nói chung, nếu bạn muốn tìm bản sao trong danh sách các từ điển, bạn nên phân loại từ điển của mình theo cách trùng lặp những người ở trong cùng một nhóm. Với mục đích đó, bạn cần phân loại dựa trên các mục dict. Bây giờ, vì đối với thứ tự từ điển không phải là một yếu tố quan trọng, bạn cần sử dụng một thùng chứa vừa có thể băm vừa không giữ thứ tự của container của nó. Một frozenset() là lựa chọn tốt nhất cho nhiệm vụ này.

Example:

In [87]: lst = [{2: 4, 6: 0},{20: 41, 60: 88},{5: 10, 2: 4, 6: 0},{20: 41, 60: 88},{2: 4, 6: 0}]

In [88]: result = defaultdict(list)

In [89]: for i, d in enumerate(lst):
    ...:     result[frozenset(d.items())].append(i)
    ...:     
In [91]: result
Out[91]: 
defaultdict(list,
            {frozenset({(2, 4), (6, 0)}): [0, 4],
             frozenset({(20, 41), (60, 88)}): [1, 3],
             frozenset({(2, 4), (5, 10), (6, 0)}): [2]})

Và trong trường hợp này, bạn có thể phân loại từ điển của mình dựa trên khóa

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
0 sau đó chọn các mục dự kiến ​​dựa trên
>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
1:

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 

Trong dòng cuối cùng (độ hiểu biết danh sách lồng nhau), chúng tôi lặp qua các mục của Dict được tổng hợp sau đó vượt qua các giá trị và giữ các mục đó trong các giá trị theo sau hoặc điều kiện là

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
2 có nghĩa là chúng tôi sẽ giữ các mục có
>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
1 với các giá trị được chỉ định trong
>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
4 Từ điển.

Bạn có thể gọi danh sách hiểu biết như thế này:

final_list = []
for key, val in d.items():
    for i in val:
        if i['id']==keeps[key]:
             final_list.append(i)

Lưu ý rằng vì việc lặp lại các toàn bộ danh sách đã được thực hiện trong C, nó rất nhanh hơn so với các vòng python thông thường và theo cách Pythonic để đi. Nhưng nếu hiệu suất không quan trọng đối với bạn, bạn có thể sử dụng phương pháp thông thường.

Trong hướng dẫn này, bạn sẽ học cách tìm và làm việc với các bản sao trong danh sách Python. Có thể làm việc hiệu quả với danh sách Python là một kỹ năng quan trọng, với danh sách được sử dụng rộng rãi như thế nào. Bởi vì danh sách Python cho phép chúng tôi lưu trữ các giá trị trùng lặp, có thể xác định, xóa và hiểu các giá trị trùng lặp là một kỹ năng hữu ích để làm chủ.you’ll learn how to find and work with duplicates in a Python list. Being able to work efficiently with Python lists is an important skill, given how widely used lists are. Because Python lists allow us to store duplicate values, being able to identify, remove, and understand duplicate values is a useful skill to master.

Đến cuối hướng dẫn này, bạn sẽ học được cách:

  • Tìm các bản sao trong một danh sách, cũng như cách đếm chúng
  • Xóa các bản sao trong danh sách Python
  • Tìm bản sao trong danh sách các từ điển và danh sách

Bắt đầu nào!

  • Cách tìm bản sao trong danh sách trong Python
  • Cách tìm bản sao trong danh sách và đếm chúng trong Python
  • Cách xóa các bản sao khỏi danh sách trong Python
  • Cách loại bỏ các bản sao trong danh sách các từ điển trong Python
  • Cách xóa các bản sao trong danh sách các danh sách trong Python
  • Sự kết luận
  • Tài nguyên bổ sung

Hãy cùng bắt đầu hướng dẫn này bằng cách che đậy cách tìm bản sao trong một danh sách trong Python. Chúng ta có thể làm điều này bằng cách sử dụng cả hàm

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
5 và phương pháp
>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
6.

Phương thức

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
7 có một đối số duy nhất, mục bạn muốn đếm và trả về số lần mục đó xuất hiện trong danh sách. Bởi vì điều này, chúng ta có thể tạo ra một danh sách hiểu chỉ trả về các mục tồn tại nhiều lần. Hãy để xem cách thức hoạt động của nó và sau đó phá vỡ nó một chút nữa:

# Finding Duplicate Items in a Python List
numbers = [1, 2, 3, 2, 5, 3, 3, 5, 6, 3, 4, 5, 7]

duplicates = [number for number in numbers if numbers.count(number) > 1]
unique_duplicates = list(set(duplicates))

print(unique_duplicates)

# Returns: [2, 3, 5]

Hãy để phá vỡ những gì chúng tôi đã làm ở đây:

  1. Chúng tôi đã sử dụng một danh sách hiểu để bao gồm bất kỳ mục nào tồn tại nhiều lần trong danh sách
  2. Sau đó chúng tôi đã chuyển đổi nó thành một tập hợp để xóa bất kỳ bản sao nào khỏi danh sách được lọc
  3. Cuối cùng, chúng tôi đã chuyển đổi bộ trở lại danh sách

Trong phần tiếp theo, bạn sẽ học cách tìm bản sao trong danh sách Python và đếm tần suất chúng xảy ra.

Cách tìm bản sao trong danh sách và đếm chúng trong Python

Cách xóa các bản sao khỏi danh sách trong Python

Cách loại bỏ các bản sao trong danh sách các từ điển trong Python

# Finding Duplicate Items in a Python List and Count Them
from collections import Counter
numbers = [1, 2, 3, 2, 5, 3, 3, 5, 6, 3, 4, 5, 7]

counts = dict(Counter(numbers))
duplicates = {key:value for key, value in counts.items() if value > 1}
print(duplicates)

# Returns: {2: 2, 3: 4, 5: 3}

Cách xóa các bản sao trong danh sách các danh sách trong Python

  1. Sự kết luận
  2. Hãy cùng bắt đầu hướng dẫn này bằng cách che đậy cách tìm bản sao trong một danh sách trong Python. Chúng ta có thể làm điều này bằng cách sử dụng cả hàm
    >>> from collections import defaultdict
    >>> 
    >>> d = defaultdict(list)
    >>> 
    >>> for i in a:
    ...     d[i['un']].append(i)
    ... 
    >>> d
    defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
    >>> 
    >>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
    >>> 
    >>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
    [{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
    >>> 
    
    5 và phương pháp
    >>> from collections import defaultdict
    >>> 
    >>> d = defaultdict(list)
    >>> 
    >>> for i in a:
    ...     d[i['un']].append(i)
    ... 
    >>> d
    defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
    >>> 
    >>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
    >>> 
    >>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
    [{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
    >>> 
    
    6.
  3. Phương thức
    >>> from collections import defaultdict
    >>> 
    >>> d = defaultdict(list)
    >>> 
    >>> for i in a:
    ...     d[i['un']].append(i)
    ... 
    >>> d
    defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
    >>> 
    >>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
    >>> 
    >>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
    [{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
    >>> 
    
    7 có một đối số duy nhất, mục bạn muốn đếm và trả về số lần mục đó xuất hiện trong danh sách. Bởi vì điều này, chúng ta có thể tạo ra một danh sách hiểu chỉ trả về các mục tồn tại nhiều lần. Hãy để xem cách thức hoạt động của nó và sau đó phá vỡ nó một chút nữa:
  4. Hãy để phá vỡ những gì chúng tôi đã làm ở đây:

Chúng tôi đã sử dụng một danh sách hiểu để bao gồm bất kỳ mục nào tồn tại nhiều lần trong danh sách

Cách xóa các bản sao khỏi danh sách trong Python

Cách loại bỏ các bản sao trong danh sách các từ điển trong Python

Cách xóa các bản sao trong danh sách các danh sách trong Python

# Remove Duplicates from a List in Python
from collections import Counter
numbers = [1, 2, 3, 2, 5, 3, 3, 5, 6, 3, 4, 5, 7]
unique = list(set(numbers))
print(unique)

# Returns: [1, 2, 3, 4, 5, 6, 7]

Sự kết luận

Cách loại bỏ các bản sao trong danh sách các từ điển trong Python

Hãy cùng xem cách chúng ta có thể loại bỏ các bản sao khỏi danh sách các từ điển trong Python. Bạn thường gặp dữ liệu từ web trong các định dạng giống như danh sách từ điển. Có thể xóa các bản sao khỏi các danh sách này là một kỹ năng quan trọng để đơn giản hóa dữ liệu của bạn.

Hãy cùng xem cách chúng ta có thể làm điều này trong Python bằng cách sử dụng một vòng lặp:

# Remove Duplicates from a List of Dictionaries
items = [{'name':'Nik'}, {'name': 'Kate'}, {'name':'James'}, {'name':'Nik'}, {'name': 'Kate'}]
unique_items = []

for item in items:
    if item not in unique_items:
        unique_items.append(item)
print(unique_items)

# Returns: [{'name': 'Nik'}, {'name': 'Kate'}, {'name': 'James'}]

Phương pháp này sẽ chỉ bao gồm các bản sao hoàn chỉnh. Điều này có nghĩa là nếu một từ điển có, giả sử, một cặp giá trị khóa bổ sung thì nó sẽ được bao gồm.

Cách xóa các bản sao trong danh sách các danh sách trong Python

Chúng ta có thể sử dụng cùng một cách tiếp cận để loại bỏ các bản sao khỏi danh sách các danh sách trong Python. Một lần nữa, cách tiếp cận này sẽ yêu cầu danh sách phải hoàn thành giống nhau để nó được coi là một bản sao. Trong trường hợp này, ngay cả các đơn đặt hàng khác nhau sẽ được coi là duy nhất.

Hãy cùng xem xét điều này trông như thế nào:

# Remove Duplicates from a List of Lists in Python
list_of_lists = [[1,2,3], [1,2], [2,3], [1,2,3], [2,3], [1,2,3,4]]
unique = []

for sublist in list_of_lists:
    if sublist not in unique:
        unique.append(sublist)

print(unique)

# Returns: [[1, 2, 3], [1, 2], [2, 3], [1, 2, 3, 4]]

Những gì chúng tôi làm ở đây là lặp qua từng người phụ trong danh sách của chúng tôi và đánh giá xem mục này có tồn tại trong danh sách duy nhất của chúng tôi hay không. Nếu nó không tồn tại (tức là, nó độc đáo cho đến nay), thì nó đã thêm vào danh sách của chúng tôi. Điều này đảm bảo rằng một mục chỉ được thêm một thời gian duy nhất vào danh sách của chúng tôi.

Sự kết luận

Trong hướng dẫn này, bạn đã học cách làm việc với các mục trùng lặp trong danh sách Python. Đầu tiên, bạn đã học cách xác định các yếu tố trùng lặp và cách đếm tần suất chúng xảy ra. Sau đó, bạn đã học cách xóa các phần tử trùng lặp khỏi danh sách bằng hàm

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
5. Từ đó, bạn đã học cách xóa các mục trùng lặp khỏi danh sách từ điển cũng như danh sách các danh sách trong Python.

Có thể làm việc với danh sách cải thiện đáng kể các kỹ năng lập trình Python của bạn. Bởi vì các cấu trúc dữ liệu này là vô cùng phổ biến, việc có thể làm việc với chúng khiến bạn trở thành một nhà phát triển tự tin và có khả năng hơn nhiều.

Để tìm hiểu thêm về lớp

>>> from collections import defaultdict
>>> 
>>> d = defaultdict(list)
>>> 
>>> for i in a:
...     d[i['un']].append(i)
... 
>>> d
defaultdict(<type 'list'>, {'a': [{'un': 'a', 'id': 'cd'}, {'un': 'a', 'id': 'cm'}], 'c': [{'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'a'}, {'un': 'c', 'id': 'vd'}], 'b': [{'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]})
>>> 
>>> keeps = {'a': 'cm', 'b':'cd', 'c':'vd'} # the key is 'un' and the value is 'id' should be keep for that 'un'
>>> 
>>> [i for key, val in d.items() for i in val if i['id']==keeps[key]]
[{'un': 'a', 'id': 'cm'}, {'un': 'c', 'id': 'vd'}, {'un': 'c', 'id': 'vd'}, {'un': 'b', 'id': 'cd'}, {'un': 'b', 'id': 'cd'}]
>>> 
8 từ thư viện bộ sưu tập, hãy xem tài liệu chính thức ở đây.

Tài nguyên bổ sung

Để tìm hiểu về các chủ đề liên quan, hãy xem các hướng dẫn dưới đây:

  • Python: Danh sách kết hợp - Danh sách hợp nhất (8 cách)
  • Python: Số lượng xảy ra trong danh sách (6 cách)
  • Danh sách Python khác biệt: Tìm sự khác biệt giữa 2 danh sách Python

Từ điển có thể có giá trị trùng lặp python không?

Từ điển trong Python đầu tiên, một khóa nhất định chỉ có thể xuất hiện trong một từ điển một lần.Các khóa trùng lặp không được phép.Duplicate keys are not allowed.

Bạn có thể có một danh sách các từ điển trong Python?

Trong Python, bạn có thể có một danh sách các từ điển.Bạn đã biết rằng các yếu tố của danh sách Python có thể là đối tượng thuộc bất kỳ loại nào.Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cách tạo một danh sách các từ điển, cách truy cập chúng, cách nối một từ điển để liệt kê và cách sửa đổi chúng.you can have a List of Dictionaries. You already know that elements of the Python List could be objects of any type. In this tutorial, we will learn how to create a list of dictionaries, how to access them, how to append a dictionary to list and how to modify them.

Một tuple có thể có các giá trị trùng lặp trong Python không?

31.2 Các loại bộ sưu tập Python cho phép các thành viên trùng lặp và được lập chỉ mục.Danh sách danh sách chứa một tập hợp các đối tượng được đặt hàng và có thể thay đổi (có thể thay đổi), chúng được lập chỉ mục và cho phép các thành viên trùng lặp.Tuples allow duplicate members and are indexed. Lists Lists hold a collection of objects that are ordered and mutable (changeable), they are indexed and allow duplicate members.

Chúng ta có thể lưu trữ các giá trị trùng lặp trong từ điển không?

Câu trả lời thẳng là không.Bạn không thể có các khóa trùng lặp trong một từ điển trong Python.You can not have duplicate keys in a dictionary in Python.