這個問題在這里已經有了答案: 如何在串列中找到重復項并使用它們創建另一個串列? (42 個回答) 7 小時前關閉。
我想撰寫一個函式來回傳陣列中重復項的數量。
例如:
arr = [2,4,6,3,2,2,4,6]
# this should return 3 since (2,4,6) are repeated in the list
uj5u.com熱心網友回復:
一個相當懶惰(我最喜歡的)但快速的解決方案可能是使用Counter
這將創建一個字典,其中:
- 鍵是元素
arr - values 是每個元素的出現次數
腳步:
arr用你的物件建立一個計數器- 構建計數 > 1 的所有元素的串列
- 獲取該串列的長度
from collections import Counter
c = Counter(arr)
duplicates = len([key for key in c if c[key] > 1])
print("Number of duplicated elements: ", duplicates)
>>> 3
該c物件如下所示:
Counter({2: 3, 4: 2, 6: 2, 3: 1})
uj5u.com熱心網友回復:
像這樣的東西應該作業:
def duplicate_in_array(array):
array_len = len(array)
duplicate_set = set()
for i in range(array_len):
for y in range(i 1,array_len):
if array[i] == array[y]:
duplicate_set.add(array[i])
return len(duplicate_set)
使用雙 for 回圈,您可以將每個重復項添加到一個集合中。由于一個集合只能有一次相同的元素,如果你的陣列有三次或多次相同的元素,它只會被添加到集合中一次。然后,您回傳集合的長度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527762.html
