python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python 字符串处理

Python 编程操作连载之字符串,列表,字典和集合处理

作者:​ 黎曼假设   ​

这篇文章主要介绍了Python 编程操作连载之字符串,列表,字典和集合处理,文章围绕主题相关资料展开详细的内容介绍,需要的朋友可参考一下下面文章内容

1.如何统计序列中元素出现的频率并排序?

统计序列中元素出现的频率的结果肯定是一个字典,Key 为序列中的元素而 Value 为元素出现的次数,因此可以先创建一个字典,作为初始的统计结果,并假设初始出现的次数都为0。

对频率结果字典的 Value 进行排序

from random import randint

# 生成包含重复元素的随机序列
nums = [randint(0, 10) for num in range(20)]

# 元素出现次数的统计最终肯定是一个字典,因此可以以元素的Key,出现的次数为Value
count = dict.fromkeys(nums, 0)

# 统计频次
for num in nums:
    count[num] += 1

# 排序方案一
# 根据Value进行排序
_count = sorted(count.values())
# 获取最大的次数
max = _count.pop()
keys = []

# 根据Value获取Key
for k, v in count.items():
    if v == max:
        keys.append(k)


if __name__ == '__main__':

    print(nums)
    print(count)
    print(_count)
    print(max)
    print(keys)

 出现的最大频次为4,且频次为4的元素是9和1

使用 Counter 对象进行排序

# 排序方案二
from collections import Counter
_count = Counter(count)

# 中间代码不变

if __name__ == '__main__':

    print(nums)
    print(count)
    print(_count)
    print(_count.most_common())
    # 获取出现频次最高的三个元素
    print(_count.most_common(3))

2.统计单词次数

import re
from collections import Counter

zen = open('zen.txt').read()
# 分割所有单词
zen = re.split('\W+', zen)
# print(zen)

_zen = Counter(zen)
print(_zen)
_zen_3 = _zen.most_common(3)
print('前三个出现频次最高的词:', _zen_3)

到此这篇关于Python 编程操作连载之字符串,列表,字典和集合处理的文章就介绍到这了,更多相关Python 字符串处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文