使用 Python 查找稀有字符

新手上路,请多包涵

假设我有一个巨大的 .txt 充满随机字符的文件,我想找出“稀有字符”。 Python 中是否有一些模块(实际上是什么)(可能是版本 3.x ,但我也有一台机器使用 Python 2.7 ,以防它更好)为此目的编写?如果是肯定的答案,我在哪里可以找到其功能的一些基本解释?非常感谢。

原文由 EM90 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 613
2 个回答
from collections import Counter

c = Counter("text")
print(c.most_common())

输出

[('t', 2), ('e', 1), ('x', 1)]

原文由 Luka Rahne 发布,翻译遵循 CC BY-SA 3.0 许可协议

要在文本中找到 10 个最稀有的字符:

 from collections import Counter

rarest_chars = Counter(text).most_common()[-10:]

为简单起见,“字符”在这里表示 Unicode 代码点:它表示 "a""A" 被视为 不同的 字符。这意味着 u'g̈' (U+0067 U+0308) 被认为是 两个 字符。在相关问题中查看这些问题是如何处理的: Most common character in a string

counter.most_common()[-10:] could be written more efficiently using heapq.nsmallest(10, counter.items(), key=itemgetter(1)) : .items() returns pairs (character, its_count) and key=itemgetter(1) extracts the counts so that 10 返回计数最少的对。

原文由 jfs 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题