Python排序计数器之counter, sort和lambda

Counter

一、Counter,最主要的作用就是计算“可迭代序列中”各个元素(element)的数量,并且按照倒序排列放出来

from collections import Counter

if __name__ == '__main__':
    list =['a', 'b', 'b','b','b','b','c','c']
    print(Counter(list))
    for item in Counter(list).items():
        print(item)
    

结果:

Counter({'b': 5, 'c': 2, 'a': 1})
('a', 1)
('b', 5)
('c', 2)

二、sort和lambda的结合使用,按照指定元素进行统计

listTopicSort = [(('50707e39-02a9-4699-9254-683fc6345321', 'Software'), 7), (('b2907f4d-00c0-48e5-a6b7-d387f9ef631a', 'Artificial intelligence'), 5), (('a57daacd-0569-4267-8dd9-43b483b35860', 'Cognitive computing'), 3), (('415060e1-67e2-45a9-947f-be87f42a5c10', 'E-commerce'), 3), (('b504240a-8c5c-4a59-b3c0-e2344506743d', 'Machine vision'), 3), (('57cfca84-3176-4c79-a337-6d1e1f15847e', 'Parcel delivery'), 2), (('9d979541-dbc2-4f57-9bb7-b9beff6e3ecc', 'Robotics'), 2), (('8f3fa8d4-46fa-4432-8919-896bcb41f9f8', 'Edge computing'), 2), (('0a1c604c-face-40c4-aec7-cf08f9224712', 'Agriculture'), 2), (('31a8ba49-524c-4fd0-9da0-4cda00d1071c', 'Image analysis'), 2), (('c3f6d429-31c7-4aed-bc28-4c85fc2379df', 'Health care'), 2), (('416b16f6-0d55-4735-87c2-bd7953e89b44', 'Automotive software'), 2), (('9cbe8e49-86c4-4443-92b4-4c1bc2d3c65e', 'Smart device'), 2), (('8fb0c9a9-1319-41a8-a860-b164f7a463ae', 'Home automation'), 2), (('fb0128aa-9435-4ee7-a235-f577ee81caf2', 'Machine learning'), 2), (('7f16dcf4-36e9-4ceb-82ae-4ac0879c1b8a', 'Military logistics'), 2), (('20a4266f-d9d1-4c4c-9595-fd6e2465f2e3', 'Speech recognition'), 2), (('bb507405-354c-4ad4-b896-86361e5b855a', 'Systems design'), 2), (('69dbcedc-e4e5-4bfa-8590-5785bd4363c4', 'Vehicle to everything'), 2)]
print(sorted(listTopicSort, key=lambda x: x[1], reverse=True))
[(('50707e39-02a9-4699-9254-683fc6345321', 'Software'), 7), (('b2907f4d-00c0-48e5-a6b7-d387f9ef631a', 'Artificial intelligence'), 5), (('a57daacd-0569-4267-8dd9-43b483b35860', 'Cognitive computing'), 3), (('415060e1-67e2-45a9-947f-be87f42a5c10', 'E-commerce'), 3), (('b504240a-8c5c-4a59-b3c0-e2344506743d', 'Machine vision'), 3), (('57cfca84-3176-4c79-a337-6d1e1f15847e', 'Parcel delivery'), 2), (('9d979541-dbc2-4f57-9bb7-b9beff6e3ecc', 'Robotics'), 2), (('8f3fa8d4-46fa-4432-8919-896bcb41f9f8', 'Edge computing'), 2), (('0a1c604c-face-40c4-aec7-cf08f9224712', 'Agriculture'), 2), (('31a8ba49-524c-4fd0-9da0-4cda00d1071c', 'Image analysis'), 2), (('c3f6d429-31c7-4aed-bc28-4c85fc2379df', 'Health care'), 2), (('416b16f6-0d55-4735-87c2-bd7953e89b44', 'Automotive software'), 2), (('9cbe8e49-86c4-4443-92b4-4c1bc2d3c65e', 'Smart device'), 2), (('8fb0c9a9-1319-41a8-a860-b164f7a463ae', 'Home automation'), 2), (('fb0128aa-9435-4ee7-a235-f577ee81caf2', 'Machine learning'), 2), (('7f16dcf4-36e9-4ceb-82ae-4ac0879c1b8a', 'Military logistics'), 2), (('20a4266f-d9d1-4c4c-9595-fd6e2465f2e3', 'Speech recognition'), 2), (('bb507405-354c-4ad4-b896-86361e5b855a', 'Systems design'), 2), (('69dbcedc-e4e5-4bfa-8590-5785bd4363c4', 'Vehicle to everything'), 2)]

二、统计出现次数最多的元素

from collections import Counter

if __name__ == '__main__':
    list =['a', 'b', 'b','b','b','b','c','c']
    temp = Counter(list)
    print(temp.most_common(1)) ##统计出现次数最多的一个元素
    print(temp.most_common(2)) ##统计出现次数最多的两个元素
    print(temp.most_common())   ##没有指定个数,就列出全部
[('b', 5)]
[('b', 5), ('c', 2)]
[('b', 5), ('c', 2), ('a', 1)]

三、elements()和sort()方法

from collections import Counter
 
c = Counter('ABCABCCC')
print(c.elements()) #<itertools.chain object at 0x0000027D94126860>
 
#尝试转换为list
print(list(c.elements())) #['A', 'A', 'C', 'C', 'C', 'C', 'B', 'B']
 
#或者这种方式
print(sorted(c.elements()))  #['A', 'A', 'B', 'B', 'C', 'C', 'C', 'C']
 
#这里与sorted的作用是: list all unique elements,列出所有唯一元素
#例如
print( sorted(c) ) #['A', 'B', 'C']

猜你喜欢

转载自blog.csdn.net/Z1065701256/article/details/121383999