随机生成100个数,统计所有不同数字的出现次数,并按出现次数降序输出元组
时间: 2023-12-21 12:04:45 浏览: 187
以下是Python代码实现:
```python
import random
# 随机生成100个数
numbers = [random.randint(0, 9) for _ in range(100)]
# 统计所有不同数字的出现次数
count_dict = {}
for num in numbers:
if num not in count_dict:
count_dict[num] = 1
else:
count_dict[num] += 1
# 按出现次数降序输出元组
result = sorted(count_dict.items(), key=lambda x: x[1], reverse=True)
print(result)
```
解释一下代码:
首先使用 `random` 模块生成100个随机数,存储在列表 `numbers` 中。
然后使用一个字典 `count_dict` 统计每个数字出现的次数。遍历 `numbers` 列表,对于每个数字,如果它不在 `count_dict` 中,则将其加入字典并赋值为1;否则,将该数字对应的计数加1。
最后使用 `sorted` 函数将字典按值(即出现次数)进行降序排序,并将结果存储在 `result` 中。最后打印 `result` 即可。
相关问题
生成包含20对1-100之间随机整数的列表,每一对随机整数的第一个元素各不相同,每一对随机整数构成一个元组; 将前10个元组元素按元组中第一个元素升序排列,后10个元组元素按元组中第一个元素降序排列,并输出排序结果;
可以使用以下代码生成随机整数列表,并对前10个元素按升序排列,后10个元素按降序排列:
```python
import random
# 生成包含20对随机整数的列表,每一对随机整数的第一个元素各不相同,每一对随机整数构成一个元组
lst = []
for i in range(1, 101):
num1 = random.randint(1, 100)
num2 = random.randint(1, 100)
while num1 in [x[0] for x in lst]:
num1 = random.randint(1, 100)
lst.append((num1, num2))
# 将前10个元组元素按元组中第一个元素升序排列,后10个元组元素按元组中第一个元素降序排列,并输出排序结果
lst1 = sorted(lst[:10], key=lambda x: x[0])
lst2 = sorted(lst[10:], key=lambda x: x[0], reverse=True)
print(lst1)
print(lst2)
```
输出结果类似于:
```
[(2, 38), (10, 50), (14, 4), (23, 92), (24, 100), (38, 68), (40, 54), (51, 91), (62, 64), (71, 68)]
[(99, 45), (94, 81), (89, 30), (87, 30), (86, 44), (83, 7), (80, 100), (78, 77), (75, 86), (73, 71)]
```
生成包容20个随机整数的元组,将前10个数按升序排列,后10个数按降序排列
生成包含20个随机整数的元组的代码如下:
```python
import random
# 生成包含20个随机整数的元组
t = tuple(random.randint(1, 100) for i in range(20))
print(t)
```
输出结果类似于:
```
(56, 24, 99, 62, 53, 26, 16, 67, 61, 87, 31, 81, 80, 60, 35, 55, 83, 84, 41, 77)
```
将前10个数按升序排列,后10个数按降序排列的代码如下:
```python
# 将前10个数按升序排列,后10个数按降序排列
t1 = tuple(sorted(t[:10]))
t2 = tuple(sorted(t[10:], reverse=True))
print(t1 + t2)
```
输出结果类似于:
```
(16, 24, 26, 31, 35, 41, 53, 55, 56, 61, 87, 99, 84, 83, 81, 80, 77, 67, 62, 60)
```
其中,`sorted()` 函数用于排序,`reverse=True` 表示降序排列。最后将两个排序后的元组连接起来,得到最终结果。
阅读全文