擅长:python、mysql、java
<p>正如其他人所提到的,您的代码中存在严重的不一致性:您试图将<code>occurrencesFound</code>同时用作整数和列表。在</p>
<p>在列表中查找重复项组的简单方法是使用标准模块函数<a href="https://docs.python.org/3/library/itertools.html#itertools.groupby" rel="nofollow">^{<cd2>}</a>。您的<code>find_duplicates</code>接受一个<code>errorMessage</code>参数,但我建议在调用代码中而不是在查找组的函数中进行错误处理更为简洁。在</p>
<p>My<code>find_duplicates</code>收集<code>dict</code>中的组,这比使用<code>list</code>更灵活,因为它可以用于各种类型的元素,而不仅仅是整数。即使你只是收集一组整数,<code>dict</code>仍然比<code>list</code>好,除非这些整数保证是大致连续的,最低的整数接近于零(非负)。在</p>
<pre><code>from itertools import groupby
def find_duplicates(input_list, occurrences=2):
input_list = sorted(input_list)
groups = {}
for k, g in groupby(input_list):
# We have to convert iterator `g` to a list to get its length
glen = len(list(g))
if glen >= occurrences:
groups[k] = glen
return groups
# Test
input_list = [7, 8, 7, 2, 8, 5, 7, 7, 8, 2]
groups = find_duplicates(input_list, 3)
if not groups:
print('No groups found')
else:
print(groups)
</code></pre>
<p><strong>输出</strong></p>
^{pr2}$