鱼C论坛

 找回密码
 立即注册
查看: 765|回复: 0

[技术交流] cookbook 1.12

[复制链接]
发表于 2022-1-19 19:36:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

找出序列中出现次数最多的元素

问题描述:
        我们有有一个序列,想找出里面出现次数最多的元素

一、from collections import Counter
  1. from collections import Counter

  2. words = ["if", "you", "and", "me", "if", "I",
  3.          "love", "cat", "dog", "if", "love", "me", "you", "if", "me", "dog"]

  4. word_counts = Counter(words)
  5. temp = Counter(words)
  6. # 找出最多的三个
  7. top_three = word_counts.most_common(4)  # 参数
  8. print(word_counts)
  9. print(top_three)
复制代码
Counter({'if': 4, 'me': 3, 'dog': 2, 'you': 2, 'love': 2, 'and': 1, 'I': 1, 'cat': 1})
[('if', 4), ('me', 3), ('dog', 2), ('you', 2)]

字典的顺序和其在原列表顺序一致

二、字典中数据更新
  1. new_word = ["if", "you", "and", "I", "love"]
  2. # 数据的更新
  3. # 迭代法
  4. for word in new_word:
  5.     word_counts[word] += 1
  6. print(word_counts)
  7. # 内置方法
  8. word_counts.update(new_word)
  9. print(word_counts)
复制代码
Counter({'if': 5, 'you': 3, 'me': 3, 'love': 3, 'and': 2, 'I': 2, 'dog': 2, 'cat': 1})
Counter({'if': 6, 'you': 4, 'love': 4, 'and': 3, 'me': 3, 'I': 3, 'dog': 2, 'cat': 1})


三、两个Counter对象间的运算
  1. temp["mq"] = 1
  2. print(temp)
  3. a = temp + word_counts
  4. print(a)
  5. b = temp - word_counts
  6. print(b)
  7. c = word_counts - temp
  8. print(c)
复制代码
集合加减法
temp ({'if': 4, 'me': 3, 'you': 2, 'love': 2, 'dog': 2, 'and': 1, 'I': 1, 'cat': 1,'mq': 1})
Counter({'if': 10, 'you': 6, 'me': 6, 'love': 6, 'and': 4, 'I': 4, 'dog': 4, 'cat': 2})
Counter({'mq': 1})
Counter({'if': 2, 'you': 2, 'and': 2, 'I': 2, 'love': 2})


本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 02:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表