如何编写一个程序,生成一个长度为200的随机整数列表,其中每个数字范围在0到20之间?然后,计算并按照每个数出现的频率从高到低排序,仅打印出出现次数大于0的数及其对应的出现次数,格式应为'xx出现yy次'?
时间: 2024-11-05 08:34:03 浏览: 1
python生成多个只含0,1元素的随机数组或列表的实例
首先,在Python中,你可以通过以下步骤来编写这个程序:
1. 导入所需的库:`random`用于生成随机数,`collections`用于统计元素出现的次数。
```python
import random
from collections import Counter
```
2. 创建一个空列表来存储随机数,并设置循环条件生成指定长度的列表:
```python
length = 200
random_list = [random.randint(0, 20) for _ in range(length)]
```
3. 使用`Counter`类计算每个数字的出现次数:
```python
counter = Counter(random_list)
```
4. 过滤掉出现次数为0的项,只保留出现次数大于0的项:
```python
filtered_counter = {k: v for k, v in counter.items() if v > 0}
```
5. 按照出现次数降序排序并打印结果:
```python
sorted_counter = sorted(filtered_counter.items(), key=lambda x: x[1], reverse=True)
for item in sorted_counter:
print(f'{item[0]}出现{item[1]}次')
```
现在你有了一个完整的程序,它会生成一个长度为200、包含0到20范围内随机数的列表,然后统计每个数字的出现频率,并按照频率从高到低打印结果。
阅读全文