用Python编程 有9个学生一起做游戏,每个人报一个[1,20]区间上的正整数,编程求出有多少个不同的数及每个数出现的次数。输入为“报数列表:”,输出为“字典:”
时间: 2024-11-09 11:20:13 浏览: 18
2023NOC软件创意编程赛项真题-python初中决赛
在Python中,你可以通过使用内置的数据结构`collections.Counter`来轻松解决这个问题。这个模块提供了一个方便的方法来计算列表中元素出现的频率。以下是一个示例程序:
```python
from collections import Counter
def count_numbers(numbers_list):
# 将字符串格式的数字列表转换为整数列表
numbers = [int(num) for num in numbers_list.split(":")[1].split(",")]
# 使用Counter计算每个数字的出现次数
number_counts = Counter(numbers)
# 计算不同的数的数量
unique_numbers_count = len(number_counts)
result = {"不同数的数量": unique_numbers_count, "计数结果": dict(number_counts)}
return str(result)
# 示例输入
input_string = "报数列表:1,2,3,4,5,6,7,8,9"
output = count_numbers(input_string)
print(output)
```
在这个程序中,首先将输入的字符串按照指定格式解析成整数列表,然后使用`Counter`对列表中的数字进行计数,并找出独特的数的数量。最后,将结果转换回字符串格式,以便输出。
阅读全文