Hướng dẫn find duplicates in list of lists python - tìm các bản sao trong danh sách danh sách python

DUNG DỊCH

Sử dụng collections.Counter:

from collections import Counter
original_list = [['a', 1], ['b', 1], ['a', 1], ['b', 1], ['b', 2], ['c', 2], ['b', 3]]
result = Counter[]
for k, v in original_list:
     result.update[{k:v}]

map[list, result.items[]]
# [['a', 2], ['c', 2], ['b', 7]]

Phát hiện

Vì vậy, rất nhiều câu trả lời, quan điểm và upvote. Tôi thậm chí còn kiếm được Nice answer đầu tiên của mình trong số một điều gì đó [trong 2 ngày qua, tôi đã đưa ra nhiều câu trả lời đáng giá hơn để nghiên cứu và nỗ lực nhiều hơn]. Theo quan điểm này, tôi quyết định thực hiện ít nhất một số giải pháp nghiên cứu và kiểm tra với một kịch bản đơn giản được viết từ đầu. Không bao gồm mã trực tiếp trong câu trả lời vì lợi ích của kích thước.

Mỗi chức năng được đặt tên cho tác giả của nó là một tác giả dễ dàng có thể được tìm thấy trong câu hỏi. Giải pháp của ________ 9 hiện bằng một trong các dấu hiệu Mark Reed và được đánh giá ở dạng ban đầu, các trạng thái của fourtheye2 cho giải pháp dựa trên

testing: thefourtheye, kroolik2, void, kroolik, alko, reed, visser
   10 samples
   10 iterations each
         author   min     avg     max    stddev
           reed 0.00000 0.00000 0.00000 0.00000
         visser 0.00000 0.00150 0.01500 0.00450
   thefourtheye 0.00000 0.00160 0.01600 0.00480
  thefourtheye2 0.00000 0.00310 0.01600 0.00620
           alko 0.00000 0.00630 0.01600 0.00772
           void 0.01500 0.01540 0.01600 0.00049
       kroolik2 0.04700 0.06430 0.07800 0.00831
        kroolik 0.32800 0.34380 0.37500 0.01716
0.

Mỗi lần được kiểm tra nhiều lần [mẫu], mỗi mẫu lần lượt gọi một số lần lặp chức năng. Tôi đã đánh giá Min, tối đa và độ lệch chuẩn cho các mẫu thời gian.

Ở đây chúng tôi đi, chạy thử nghiệm thăm dò trong 10 lần.

testing: thefourtheye, kroolik2, void, kroolik, alko, reed, visser
   10 samples
   10 iterations each
         author   min     avg     max    stddev
           reed 0.00000 0.00000 0.00000 0.00000
         visser 0.00000 0.00150 0.01500 0.00450
   thefourtheye 0.00000 0.00160 0.01600 0.00480
  thefourtheye2 0.00000 0.00310 0.01600 0.00620
           alko 0.00000 0.00630 0.01600 0.00772
           void 0.01500 0.01540 0.01600 0.00049
       kroolik2 0.04700 0.06430 0.07800 0.00831
        kroolik 0.32800 0.34380 0.37500 0.01716

Nhìn vào hai hàng dưới cùng: Tại thời điểm này, các giải pháp Kroolik đã bị loại vì với bất kỳ số lượng mẫu hợp lý nào*Lặp lại sẽ được thực hiện trong nhiều giờ. Đây là bài kiểm tra cuối cùng. Tôi đã thêm số lượng các upvote vào OUTUT:

testing: thefourtheye, kroolik2, void, kroolik, alko, reed, visser
   100 samples
  1000 iterations each
         author  upvotes   min     avg     max    stddev
           reed  [20]    0.06200 0.08174 0.15600 0.01841
   thefourtheye   [5]    0.06200 0.09971 0.20300 0.01911
         visser   [6]    0.10900 0.12392 0.23500 0.02263
  thefourtheye2          0.25000 0.29674 0.89000 0.07183
           alko  [11]    0.56200 0.62309 1.04700 0.08438
           void   [3]    1.50000 1.65480 2.39100 0.18721
        kroolik  [14]     [DSQ]

Python tìm bản sao trong danh sách các danh sách ví dụ

Đưa ra một danh sách các danh sách, kiểm tra có nếu có bất kỳ bản sao nào trong danh sách các danh sách có cùng giá trị và thứ tự.

Đếm các lần xuất hiện trong một danh sách hiểu, chuyển đổi chúng thành một tuple để bạn có thể băm và áp dụng unicity:

routes = [[1, 2, 4, 6, 10], [1, 3, 8, 9, 10], [1, 2, 4, 6, 10]]
dups = {tuple[x] for x in routes if routes.count[x] > 1}

print[dups]

Đầu ra::

Đủ đơn giản, nhưng rất nhiều vòng lặp dưới mui xe vì các cuộc gọi lặp đi lặp lại đến

testing: thefourtheye, kroolik2, void, kroolik, alko, reed, visser
   10 samples
   10 iterations each
         author   min     avg     max    stddev
           reed 0.00000 0.00000 0.00000 0.00000
         visser 0.00000 0.00150 0.01500 0.00450
   thefourtheye 0.00000 0.00160 0.01600 0.00480
  thefourtheye2 0.00000 0.00310 0.01600 0.00620
           alko 0.00000 0.00630 0.01600 0.00772
           void 0.01500 0.01540 0.01600 0.00049
       kroolik2 0.04700 0.06430 0.07800 0.00831
        kroolik 0.32800 0.34380 0.37500 0.01716
1. Có một cách khác, liên quan đến băm nhưng có độ phức tạp thấp hơn sẽ là sử dụng collections.Counter:

from collections import Counter

routes = [[1, 2, 4, 6, 10], [1, 3, 8, 9, 10], [1, 2, 4, 6, 10]]

c = Counter[map[tuple,routes]]
dups = [k for k,v in c.items[] if v>1]

print[dups]

Tìm các yếu tố trùng lặp trong danh sách các danh sách

Nếu có một yếu tố trùng lặp phổ biến giữa bất kỳ hoặc tất cả các danh sách, hãy trả về true. Nếu tất cả các yếu tố là duy nhất, hãy trả về sai.

def find_dup[l]:
    dupes = []
    flat = [item for sublist in l for item in sublist]
    for f in flat:
        if flat.count[f] > 1:
            if f not in dupes:
                dupes.append[f]

    if dupes:
        return True
    else:
        return False


l = [[20, 21, 22], [17, 18, 19, 20], [10, 11, 12, 13]]
print[find_dup[l]]

Đầu ra: Đúng: True

Tìm bản sao trong danh sách các danh sách và sáp nhập chúng

Ví dụ, khử trùng lặp một danh sách các danh sách và hợp nhất các giá trị của các bản sao.

original_list = [['a', 1], ['b', 1], ['a', 1], ['b', 1], ['b', 2], ['c', 2], ['b', 3]]

totals = {}
for k, v in original_list:
    totals[k] = totals.get[k, 0] + v

print[totals]

Output::

{’A,

Nguồn: stackoverflow.com

Hãy bình luận nếu bạn có bất kỳ nghi ngờ và đề xuất nào về chủ đề danh sách Python này.

Lưu ý: IDE: & NBSP; Pycharm & NBSP; 2021.3.3 [Phiên bản cộng đồng] IDE: PyCharm 2021.3.3 [Community Edition]

Windows 10

Python 3.10.1

Tất cả & nbsp; ví dụ python & nbsp; là trong & nbsp; Python & nbsp; 3, vì vậy có thể khác với các phiên bản Python 2 hoặc nâng cấp. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.

Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.

Danh sách có thể có các bản sao?

Bản sao trong danh sách là gì? Nếu một số nguyên hoặc chuỗi hoặc bất kỳ mục nào trong danh sách được lặp lại nhiều lần, chúng là các bản sao.If an integer or string or any items in a list are repeated more than one time, they are duplicates.

Bạn có thể có các giá trị trùng lặp trong danh sách Python không?

Danh sách Python có thể chứa các yếu tố trùng lặp..

Chủ Đề