Giải pháp của EV. Kounis là đơn giản nhất và những gì bạn nên sử dụng theo ý kiến khiêm tốn của tôi. Tuy nhiên, nếu bạn muốn gắn bó với mã của mình, đây là lý do tại sao nó không hoạt động:
Với các vòng lặp
Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
[5, 6]
Number of duplicates: 4
0 phức tạp của bạn, về cơ bản, bạn nói "cho mọi mục trong danh sách của tôi, tăng Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
[5, 6]
Number of duplicates: 4
1 khi bạn tìm thấy một bản sao", về cơ bản là những gì bạn muốn. Nhưng vì bạn có hai "4 bản sao", nên nó tăng thêm thời gian.seq=[-1,2,4,2,0,4,4]
fir = 0
sec = 0
count = 0
print "Pairs of duplicates: "
for fir, item1 in enumerate[seq]:
for sec, item2 in enumerate[seq]:
if fir < sec and seq[fir] == seq[sec] :
count+=1
print[fir, sec]
print "Number of duplicates: ", count
Đầu ra nào:
Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
[5, 6]
Number of duplicates: 4
Cặp
Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
[5, 6]
Number of duplicates: 4
3 không chính xác.Để khắc phục điều này, chỉ cần thêm một điều kiện vào câu lệnh
Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
[5, 6]
Number of duplicates: 4
4 của bạn để ngăn chặn một mục được so sánh hai lần:seq=[-1,2,4,2,0,4,4]
fir = 0
sec = 0
count = 0
duplicates=[]
print "Pairs of duplicates: "
for fir, item1 in enumerate[seq]:
for sec, item2 in enumerate[seq]:
if fir < sec and seq[fir] == seq[sec] and seq[fir] not in duplicates:
count+=1
print[fir, sec]
duplicates.append[seq[fir]]
print "Number of duplicates: ", count
Kết quả nào cho thấy kết quả mong muốn:
Pairs of duplicates:
[1, 3]
[2, 5]
[2, 6]
Number of duplicates: 3
Nhưng một lần nữa, làm
len[seq]-len[set[seq]]
đơn giản hơn rất nhiều và hoạt động tốt như vậy.
EDIT:
Tôi nhận ra rằng tôi đã không sử dụng trong khi các vòng lặp trong ví dụ của mình.
def count_duplicates[seq]:
fir = 0
sec = 0
count = 0
duplicates=[]
print "Pairs of duplicates: "
while fir < len[seq]:
while sec < len[seq]:
if fir < sec and seq[fir] == seq[sec] and seq[fir] not in duplicates:
count += 1
print[fir, sec]
sec += 1
duplicates.append[seq[fir]]
fir += 1
sec = 0
return count
c=count_duplicates[[-1,2,4,2,0,4,4]]
print "Number of duplicates: ", c
Nếu bạn muốn đếm các bản sao cho một phần tử nhất định thì hãy sử dụng hàm đếm []. Sử dụng kết hợp logic chức năng hoặc hàm cơ bản để tìm tất cả các yếu tố trùng lặp trong danh sách và đếm chúng trong Python.count[] function. Use a counter[] function or basics logic combination to find all duplicated elements in a list and count them in Python.
Mã ví dụ đơn giản.
Sử dụng Count []
Nhận được sự xuất hiện của một yếu tố nhất định trong danh sách. Đếm số B Bi trong danh sách.
MyList = ["b", "a", "a", "c", "b", "a", "c", 'a']
res = MyList.count['b']
print[res]
Đầu ra: 2: 2
Và nếu muốn đếm từng phần tử trong danh sách sử dụng cho Loop.
MyList = ["b", "a", "a", "c", "b", "a", "c", 'a']
res = {}
for i in MyList:
res[i] = MyList.count[i]
print[res]
Output::
Cùng một mã sử dụng danh sách hiểu
MyList = ["b", "a", "a", "c", "b", "a", "c", 'a']
res = {i:MyList.count[i] for i in MyList}
print[res]
Sử dụng bộ sưu tập.Count []
Bạn cần nhập bộ đếm từ bộ sưu tập.
from collections import Counter
MyList = ["a", "b", "a", "c", "c", "a", "c"]
res = Counter[MyList]
print[res]
print[res['a']]
Đầu ra::
Counter [{’a,
3
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.
Một yếu tố được cho là trùng lặp nếu nó xảy ra nhiều lần trong danh sách. Nếu bạn muốn tìm các phần tử trùng lặp của danh sách Python, bạn có thể kiểm tra các tồn tại của từng phần tử trong danh sách, sau đó thêm nó vào các bản sao; Nếu tổng số lượng tồn tại của phần tử này nhiều lần, thì phần tử được trùng lặp trong danh sách. Hướng dẫn này sẽ xây dựng các chương trình ví dụ giúp chúng tôi đếm các mục trùng lặp của một danh sách. Bạn cũng có thể sử dụng hàm tích hợp Python, tức là, đếm []. Hàm này kết quả từ tổng số của một mục nhất định trong danh sách. Hàm đếm [] đếm chuỗi cũng như các phần tử có trong danh sách. Điều tiện lợi về danh sách là bạn có thể thêm các giá trị trùng lặp vào danh sách. Nó không chỉ cho phép các giá trị số nguyên trùng lặp mà còn có thể thêm các phần tử trùng lặp thuộc bất kỳ loại nào như chuỗi, float, v.v. Hãy để nói rõ hơn với sự trợ giúp của các ví dụ. Chúng tôi sử dụng trình biên dịch Spyder để giải thích cách Python đếm các yếu tố trùng lặp trong danh sách. Trong hình minh họa đầu tiên của chúng tôi, chúng tôi sử dụng một phương pháp đơn giản để tìm các phần tử trùng lặp trong danh sách Python. Bây giờ, hãy để kiểm tra cách thức hoạt động của chương trình. Để chạy mã của bạn, điều đầu tiên bạn phải làm là khởi chạy Spyder IDE. Vì vậy, từ thanh tìm kiếm windows PC, nhập ‘spyder và sau đó nhấp vào mở. Tạo một tệp mới bằng cách chuyển sang menu tệp hoặc chỉ cần sử dụng phím tắt ‘Ctrl+Shift+n. Sau khi tạo một tệp mới, hãy viết mã Python để xây dựng cách Python đếm các bản sao trong danh sách. Phương pháp này sử dụng hai vòng lặp để đi qua danh sách các phần tử và kiểm tra xem mục thứ nhất và mục thứ hai của mỗi phần tử đều phù hợp với bất kỳ tuple nào khác. Bước đầu tiên của chúng tôi chuyển đổi ‘listofitem, thành một chuỗi. Sau đó, chúng tôi khởi tạo danh sách để nối các giá trị giống hệt nhau trong danh sách. Để kiểm tra sự trùng lặp của phần tử, chúng tôi sử dụng các câu lệnh IF-Else. Nếu các phần tử được nhân đôi, thì nó sẽ in phần tử; nếu không thì chuyển sang tuyên bố khác. Cuối cùng, chúng tôi sử dụng hai chức năng, tức là, in và đếm. Chức năng đếm đếm các phần tử trùng lặp và hàm in hiển thị đầu ra kết quả trên màn hình bảng điều khiển.ví dụ 1
Sau khi viết mã Python của bạn, hãy di chuyển đến menu Tệp và lưu tệp mã của bạn bằng tiện ích mở rộng ‘.py. Trong hình minh họa của chúng tôi, tên tệp là ‘CountDuplicate.py. Bạn có thể chỉ định bất kỳ tên nào cho tệp của bạn.
Bây giờ hãy chạy tệp mã của bạn hoặc chỉ đơn giản là sử dụng khóa F9 F9 để kiểm tra đầu ra của bản sao số Python trong màn hình bảng điều khiển của bạn. Đầu ra là một trong những dự kiến.
Ví dụ 2
Trong ví dụ thứ hai của chúng tôi, chúng tôi sử dụng chức năng sắp xếp và đếm để tìm phần tử trùng lặp trong danh sách Python. Hãy để kiểm tra cách thức hoạt động của mã Python. Hãy cùng vào trình biên dịch Spyder trong Windows 10 và chọn một tệp trống mới hoặc sử dụng cùng một tệp. Chúng tôi đã sử dụng cùng một tệp mã Python trong hình minh họa tiếp theo của chúng tôi, Count CountDuplicate.py, và đã thực hiện các thay đổi. Đây là một cách khác để chứng minh làm thế nào Python tính các bản sao trong danh sách.
Lúc đầu, chúng tôi khởi tạo một danh sách và sử dụng hàm sắp xếp sắp xếp các giá trị ban đầu. Sau đó, chúng tôi sử dụng một vòng lặp cho các câu lệnh nếu được các câu lệnh đi qua danh sách và đếm các phần tử trùng lặp. Nếu hàm đếm đếm bất kỳ phần tử trùng lặp nào, nó được lưu trữ trong ‘sao chép, khi chúng tôi khởi tạo ở trên. Nếu nó có thể tìm thấy bất kỳ yếu tố trùng lặp nào, nó sẽ gọi chức năng ’phụ lục. Cuối cùng, chúng tôi sử dụng chức năng in in các giá trị trùng lặp kết quả được lưu trữ trong ‘trùng lặp.
Một lần nữa, lưu tệp mã Python để thực hiện thêm. Sau đó chạy mã để kiểm tra đầu ra của số lượng python trùng lặp. Sau khi thực hiện chương trình trên, bạn sẽ có được đầu ra kết quả. Đầu ra có thể được xác minh trong hình ảnh đính kèm.
Sự kết luận
Hướng dẫn này đã thảo luận về cách Python đếm các bản sao trong danh sách bằng trình biên dịch Spyder trong Windows 10. Chúng tôi đã thảo luận về hai phương pháp đơn giản nhất để triển khai. Để hiểu rõ hơn, nên thực hiện chúng trên hệ điều hành của bạn. Tôi hy vọng các bạn thấy nó hữu ích.
Thông tin về các Tác giả
Xin chào, tôi là một nhà văn tự do và thường viết cho Linux và các nội dung liên quan đến công nghệ khác