如何计算列表的百分比
一个列表,里面有很多重复值,如何计算里面重复值的百分比并合并起来{:10_266:}谢谢大佬
x =
sum(set(x)) list有个count方法可以统计某一个元素的值
x.count(111)
tttxiaoz 发表于 2020-8-18 10:39
list有个count方法可以统计某一个元素的值
要百分比{:10_266:} x =
result = []
for i in set(x):
result.append((i,'{:.2f}%'.format((x.count(i)/len(x))*100)))
print(*result)
输出结果:
(555, '14.29%') (333, '14.29%') (111, '21.43%') (666, '7.14%') (444, '21.43%') (222, '21.43%') qiuyouzhi 发表于 2020-8-18 10:37
比如,1个111在列表占10%,那么3个就占30%,同理,222,333这些站多少,我是想算这个,方法不限,可以应用库{:10_266:} Twilight6 发表于 2020-8-18 10:40
输出结果:
你是这个{:10_275:} Twilight6 发表于 2020-8-18 10:40
输出结果:
大佬,再问个问题,如果里面有中文或者英文有影响吗 jtxs0000 发表于 2020-8-18 10:45
大佬,再问个问题,如果里面有中文或者英文有影响吗
没有影响。 Twilight6 发表于 2020-8-18 10:40
输出结果:
from collections import Counter
x =
result = []
for i, j in Counter(x).items():
result.append((i,'{:.2f}%'.format((j/len(x))*100)))
print(*result)效率会更好 本帖最后由 _2_ 于 2020-8-18 10:58 编辑
我来试试:
x =
def func(x: list) -> list: return [(i, j) for i in list(set(x)) for j in for __ in * len(x)]]
func(x)
没测试,可能有错 谢谢各位大佬解答,只能按时间先后给最佳了,不好意思 from collections import Counter
list(map(lambda k:(k,k/len(x)),Counter(x).items()))
输出结果:
[(111, 0.21428571428571427), (222, 0.21428571428571427), (333, 0.14285714285714285), (444, 0.21428571428571427), (555, 0.14285714285714285), (666, 0.07142857142857142)]
页:
[1]