本程序的功能是随机产生50个1~20的整数,存入列表list1,然后找出这一组数据中的众数。所谓众数就是在这组数据中出现次数最多的数。 注意:一组数据中的众数可能有多个(即有多个数据的出现次数相同)。程序至少包含一个Freg函数过程,求出列表中每个不相同的数据出现的次数,并返回一个列表 (列表每个元素为一个元组,元组第一项为数据本身,第二项为数据出现的次数(可用count0方法计数)
时间: 2023-05-30 17:01:23 浏览: 159
import random
def Freg(lst):
freq_lst = []
for num in set(lst):
freq_lst.append((num, lst.count(num)))
return freq_lst
list1 = [random.randint(1, 20) for i in range(50)]
print(list1)
freq_list = Freg(list1)
print(freq_list)
max_freq = max([tup[1] for tup in freq_list])
mode_list = [tup[0] for tup in freq_list if tup[1] == max_freq]
print("众数为:", mode_list)
相关问题
本程序的功能是随机产生50个1~20的整数,存入列表list1,然后找出这一组数据中的众数,程序至少包含一个Freq函数过程,求出列表中每个不相同的数据出现的次数,并返回一个列表(列表每个元素为一个元组,元组第一项为数据本身,第二项为数据出现的次数(可用count()方法计数))
好的,让我来回答你的问题。以下是程序的代码:
import random
def Freq(list1):
# 产生50个1~20的整数
for i in range(50):
list1.append(random.randint(1, 20))
# 找出众数
mode = max(set(list1), key = list1.count)
# 求出每个不相同的数据出现的次数
freq_list = []
for i in set(list1):
freq_list.append((i, list1.count(i)))
return freq_list
list1 = []
freq_list = Freq(list1)
print("随机产生的50个1~20的整数为:", list1)
print("每个不相同的数据出现的次数为:", freq_list)
请注意,这个程序可以随机产生50个1~20的整数,并找出这一组数据中的众数。同时,它还可以求出列表中每个不相同的数据出现的次数,并返回一个列表,列表每个元素为一个元组,元组第一项为数据本身,第二项为数据出现的次数。希望这个程序能够满足你的需求。
本程序的功能是随机产生50个1~20的整数,存入列表list1,然后找出这一组数据中的众数。所谓众数,就是在这组数据中出现次数最多的数。 注意:一组数据中的众数可能有多个,(即有多个数据的出现次数相同)。程序至少包含一个Freq函数过程,求出列表中每个不相同的数据出现的次数,并返回一个列表
。代码如下:
```python
import random
def Freq(list1):
freq_dict = {}
for num in list1:
if num in freq_dict:
freq_dict[num] += 1
else:
freq_dict[num] = 1
return freq_dict
list1 = [random.randint(1, 20) for _ in range(50)]
freq_list = Freq(list1).items()
max_freq = max(freq_list, key=lambda x: x[1])[1]
mode_list = [num for num, freq in freq_list if freq == max_freq]
print("原列表数据:", list1)
print("每个数出现次数:", dict(freq_list))
print("众数列表:", mode_list)
```
程序先使用随机数函数生成50个1~20的整数,并存储在列表list1中。然后调用Freq函数,为这50个数据统计出现的次数,并返回一个字典。Freq函数中使用了一个字典freq_dict来存储每个不相同的数据出现的次数。当遍历到某个数时,若该数已存在于字典中,则将该数对应的值加1;如果不存在,则将该数作为键,值初始化为1。函数返回字典freq_dict。
接下来,程序调用max函数项字典中的values值(即每个数据出现的次数)最大的键值对,并用lambda函数规定比较条件。由于max函数只返回一个键值对,因此还需取出该键值对的值,即出现最多的次数。然后,程序遍历字典freq_list,将其键和值分别取出,判断其值是否等于最大频数max_freq,如果是,则将该键加入众数列表mode_list。
最后,程序输出原列表数据,每个数出现次数,以及众数列表。