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.