从python中的.most_common()隔离和筛选结果

2024-04-26 03:46:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用从collections模块导入的most_common()函数来显示字符串中最常见的字母,但是遇到了一些我不知道如何解决的问题。你知道吗

import collections
from collections import Counter

message = "Hello, how are you today?   "
common = Counter(message).most_common(3)

print (common)

我不明白怎么做:

过滤最终输出,使3个最常见的字符是字母,而不是空格或撇号。你知道吗

得到3个最常见的字母自己(使它等于一个变量),所以我可以单独使用它,我已经尝试在下面的代码中这样做,但它没有工作,所以我的想法。你知道吗

import collections
from collections import Counter

message = "Hello, how are you today?   "
common = Counter(message).most_common(3)
firstletter = Counter(message).most_common(1)[0][0]
print(firstletter)
print (common)

对于第二个问题,我暂时这样做:

common = Counter(message.replace(" ", "")).most_common(3)

但从长远来看,这显然是行不通的,用所有的东西来代替是荒谬的。你知道吗


Tags: fromimportyoumessagemosthellotoday字母
2条回答

对于第一个问题,可以在获取最常见的元素之前对字符串使用isalpha()。只需删除任何非字母字符。你知道吗

解决第一个问题,我想你的第二个问题也会解决。你知道吗

一种方法是不计算任何非字符的数字-

common = Counter(m for m in message if m.isalpha()) \
                .most_common(3)

上面的方法只计算字符串中的字母,如果您希望它也计算数字,一个简单的方法是使用^{}而不是^{}。你知道吗

演示-

>>> from collections import Counter
>>> message = "Hello, how are you today?   "
>>> common = Counter(m for m in message if m.isalpha()) \
...                 .most_common(3)
>>> common
[('o', 4), ('e', 2), ('y', 2)]

相关问题 更多 >