📅  最后修改于: 2023-12-03 15:04:19.325000             🧑  作者: Mango
欢迎来到 Python 列表测验!这里是问题 21 的内容。
在这个问题里,我们将探讨 Python 中列表的一些特性以及相关的操作。
给定一个由整数组成的列表 numbers
,你需要编写一个函数 count_duplicates(numbers: List[int]) -> int
,返回列表中重复元素的个数。
函数接受一个参数:
numbers
:一个由整数组成的列表,其中元素的个数不超过 100,每个元素的取值范围为 [-100, 100]。函数应当返回一个整数,表示列表中重复元素的个数。
numbers = [1, 2, 3, 4, 1, 2, 5, 6, 7, 8]
print(count_duplicates(numbers))
# 输出: 2
在这个示例中,列表 numbers
中有两个重复元素,即 1 和 2。因此,函数应返回 2。
为了解决这个问题,你可以使用一些 Python 的列表操作来统计重复元素的个数。可以考虑使用计数器 Counter
类。
以下是一个可能的解法:
from typing import List
from collections import Counter
def count_duplicates(numbers: List[int]) -> int:
counter = Counter(numbers)
duplicate_count = sum(count - 1 for count in counter.values())
return duplicate_count
这个解法中,Counter(numbers)
会返回一个字典,其中键是列表中的元素,值是其在列表中出现的次数。然后,我们用一个生成器表达式 count - 1 for count in counter.values()
来计算每个重复元素的个数。最后,通过 sum
函数将这些个数相加并返回结果。
你可以根据需要对这个解法进行修改和优化。
以上就是问题 21 的完整内容和解析方法。希望这个测验可以帮助你提升对 Python 列表的理解和应用能力。有任何疑问,可以随时在评论区提问。