使用 Python 查找稀有字符

新手上路,请多包涵

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

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

阅读 717
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 许可协议

推荐问题