生成包含1000个1~100的随机整数,并统计每个元素(整数)的出现次数【按次数或整数值升序或降序输出统计结果】要求:至少2种方法(1-字典+sorted 2-使用collections模块的Counter类)
时间: 2024-11-10 13:26:51 浏览: 4
在Python中,有多种方法可以生成包含1000个1到100的随机整数并统计它们的出现次数。以下是两种常用的方法:
**方法一:使用字典和sorted**
```python
import random
# 生成随机列表
random_numbers = [random.randint(1, 100) for _ in range(1000)]
# 使用字典存储计数,然后按照元素排序
counter_dict = {num: random_numbers.count(num) for num in random_numbers}
sorted_counter = sorted(counter_dict.items(), key=lambda x: x[1])
# 输出统计结果
for item in sorted_counter:
print(f"{item[0]} 出现了 {item[1]} 次")
```
**方法二:使用collections模块的Counter类**
```python
from collections import Counter
# 生成随机列表
random_numbers = [random.randint(1, 100) for _ in range(1000)]
# 使用Counter类快速计数
counter = Counter(random_numbers)
# 按照元素值或出现次数排序
sorted_by_value = counter.most_common() # 按值降序,即出现次数最多在前
sorted_by_count = sorted(counter.items(), key=lambda x: x[1]) # 按出现次数升序
# 输出统计结果
for num, count in sorted_by_value:
print(f"{num} 出现了 {count} 次")
for num, count in sorted_by_count:
print(f"{num} 出现了 {count} 次")
```
**相关问题--:**
1. 字典和Counter类在统计中有什么区别?
2. 如何只显示出现次数最多的几个元素?
3. 如果需要同时按值和出现次数排序呢?
阅读全文