# 定义计算众数的函数get_mode(),参数为待分析列表型数据input_list,返回众数
def get_mode(input_list):
# 获取各个元素重复次数(只计算当前元素之后的次数)
input_list_repeattimes=[]
for index,i in enumerate(input_list):
counts=0
for j in input_list[index:]:
if j==i:
counts+=1
input_list_repeattimes.append(counts)
# 获取最大的次数
largestcount=0
for index,i in enumerate(input_list_repeattimes):
if i>largestcount:
largestcount=i
#获取最大的次数的位置
largestindex=[]
for index,i in enumerate(input_list_repeattimes):
if i==largestcount:
largestindex.append(index)
#获取mode
mode=[]
for i in largestindex:
mode.append(input_list[i])
#根据情况返回mode值
if largestcount==1:
return "No mode exist"
else:
return mode
# 测试:调用get_mode函数,计算众数
input_list=[100,98,87,65,82,99,92,99,100]
print(get_mode(input_list))
input_list2=[1,2,3,4,5]
print(get_mode(input_list2))
# 定义计算众数的函数get_mode(),参数为待分析列表型数据input_list,返回众数
def get_mode(input_list):
# 获取各个元素重复次数(只计算当前元素之后的次数)
input_list_repeattimes=[]
for index,i in enumerate(input_list):
counts=0
for j in input_list[index:]:
if j==i:
counts+=1
input_list_repeattimes.append(counts)
#同时获得最大次数和最大位置
largestcount=0
largestindex=[]
for index,i in enumerate(input_list_repeattimes):
if i>largestcount:
largestcount=i
largestindex=[]
largestindex.append(index)
elif i==largestcount:
largestindex.append(index)
#获取mode
mode=[]
for i in largestindex:
mode.append(input_list[i])
#根据情况返回mode值
if largestcount==1:
return "No mode exist"
else:
return mode
# 测试:调用get_mode函数,计算众数
input_list=[100,98,87,65,82,99,92,99,100]
print(get_mode(input_list))
input_list2=[1,2,3,4,5]
print(get_mode(input_list2))
# 定义计算众数的函数get_mode(),参数为待分析列表型数据input_list,返回众数
def get_mode(input_list):
# 按顺序获取各个元素重复次数列表
input_list_repeattimes=[]
largestcount=0
for i in input_list:
count=input_list.count(i) #计数函数
input_list_repeattimes.append(count)
if count > largestcount:
largestcount=count
#获取mode
mode=[]
for index,i in enumerate(input_list_repeattimes):
if i==largestcount:
mode.append(input_list[index])
mode=set(mode) #去除重复的函数
#根据情况返回mode值
if largestcount==1:
return "No mode exist"
else:
return mode
# 测试
input_list=[100,98,87,65,82,99,92,99,100]
print(get_mode(input_list))
input_list2=[1,2,3,4,5]
print(get_mode(input_list2))
# 定义计算众数的函数get_mode(),参数为待分析列表型数据input_list,返回众数
def get_mode(input_list):
# 将列表转化为列表元素为键(key),计数为值(value)的字典
dict1={
}
for i in input_list:
if i not in dict1.keys():
dict1[i]=1
else:
dict1[i]+=1
# 遍历字典的值,也就是原列表的计数,获取最大的计数以及相对应的键
largestcount=0
mode=[]
for i in dict1.keys():
value=dict1[i]
if value >largestcount:
largestcount=value
mode=[]
mode.append(i)
elif value==largestcount:
mode.append(i)
# 根据情况返回mode值
if largestcount==1:
return "No mode exist"
else:
return mode
# 测试:调用get_mode函数,计算众数
input_list=[100,98,87,65,82,99,92,99,100]
print(get_mode(input_list))
input_list2=[1,2,3,4,5]
print(get_mode(input_list2))
可以用 for key, value in dict1.items() 来直接遍历键和值:
# 定义计算众数的函数get_mode(),参数为待分析列表型数据input_list,返回众数
def get_mode(input_list):
# 将列表转化为列表元素为键(key),计数为值(value)的字典
dict1={
}
for i in input_list:
if i not in dict1.keys():
dict1[i]=1
else:
dict1[i]+=1
# 遍历字典的值,也就是原列表的计数,获取最大的计数以及相对应的键
largestcount=0
mode=[]
for key,value in dict1.items():
if value >largestcount:
largestcount=value
mode=[]
mode.append(key)
elif value==largestcount:
mode.append(key)
# 根据情况返回mode值
if largestcount==1:
return "No mode exist"
else:
return mode
# 调用get_mode函数,计算众数
input_list=[100,98,87,65,82,99,92,99,100]
print(get_mode(input_list))
input_list2=[1,2,3,4,5]
print(get_mode(input_list2))
From B