繁体   English   中英

计数器类对象到可用列表

[英]Counter class object to usable list

我已经使用Counter类来获取迭代次数,现在我想将其格式化为:

from collections import Counter
elements = [1,6,9,4,1,2]
elements.sort()
Val=Counter(elements).keys() #Gives me all the values used : 1,2,4,6,9
Freq=Counter(elements).values() #Gives me the frequency : 2,1,1,1,1,
# I want display somethink like : 
# 1 : 2
# 2 : 1
# 4 : 1
# 6 : 1
# 9 : 1

#I have tried : but it is a dict Type : I need to convert this Val et Freq to List
for i in range(0,len(Val)):
    print(str(Val[i]) +" : "str(Freq[i]))

您应该只建立一次Counter 不能保证两个单独的Counter对象将以相同的顺序遍历它们的内容(此外,对于大的输入,它只是无效的)。

from collections import Counter

elements = [1,6,9,4,1,2]

for val, freq in sorted(Counter(elements).items()):
    print(val, ' : ', freq)

这里sorted(Counter(elements).items())是一个包含元组(val, freq)的排序列表:
[(1, 2), (2, 1), (4, 1), (6, 1), (9, 1)]

您可以将它们转换为列表,然后将其zip

from collections import Counter
elements = [1,6,9,4,1,2]
elements.sort()
Val=list(Counter(elements).keys()) #Gives me all the values used : 1,2,4,6,9
Freq=list(Counter(elements).values()) #Gives me the frequency : 2,1,1,1,1,

for i,j in zip(Val,Freq):
    print(str(i) + ":" + str(j))

输出:

1:2
2:1
4:1
6:1
9:1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM