Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找紧跟另一个字符的最常见字符_Python_Python 3.x - Fatal编程技术网

Python 查找紧跟另一个字符的最常见字符

Python 查找紧跟另一个字符的最常见字符,python,python-3.x,Python,Python 3.x,我目前正在编写一小段代码,我似乎遇到了障碍。我想知道是否有可能(因为就我个人而言,我无法找出它)找到跟在特定字符或字符串后面的最常见字符 例如,假设我有以下句子: "this is a test sentence that happens to be short" 例如,我如何确定字母h之后出现的最常见字符 在这个具体的例子中,用手操作,我得到如下结果: {“i”:1,“a”:2,“o”:1} 然后,我希望能够获得最大值的键——在本例中,a 使用集合中的计数器,我已经能够找到特定单词或字符最

我目前正在编写一小段代码,我似乎遇到了障碍。我想知道是否有可能(因为就我个人而言,我无法找出它)找到跟在特定字符或字符串后面的最常见字符

例如,假设我有以下句子:

"this is a test sentence that happens to be short" 
例如,我如何确定字母
h
之后出现的最常见字符

在这个具体的例子中,用手操作,我得到如下结果:

{“i”:1,“a”:2,“o”:1}

然后,我希望能够获得最大值的键——在本例中,
a

使用
集合
中的
计数器
,我已经能够找到特定单词或字符最常见的匹配项,但我不确定如何执行最常见匹配项的具体实现。任何帮助都将不胜感激,谢谢

(我写的代码是为了找到文件中最常见的字母:
计数器(文本)。最常见的(1)
,其中包括空格)

编辑:

用文字怎么做?例如,如果我有这样一句话:
“鲸鱼非常整洁,但鲸鱼不是好宠物。鲸鱼很酷。”
我如何找到单词
鲸鱼
后出现的最常见字符?

在本例中,删除空格后,最常见的字符将是
a

,使用
计数器
类,我们可以尝试:

import collections
s = "this is a test sentence that happens to be short"
s = re.sub(r'^.*n|\s*', '', s)
print(collections.Counter(s).most_common(1)[0])

上面将打印
o
,因为它是最后一个
n
之后出现的最频繁字符。请注意,在调用collections count之前,我们还去除了空格。

使用
计数器
类,我们可以尝试:

import collections
s = "this is a test sentence that happens to be short"
s = re.sub(r'^.*n|\s*', '', s)
print(collections.Counter(s).most_common(1)[0])

上面将打印
o
,因为它是最后一个
n
之后出现的最频繁字符。请注意,在调用collections count之前,我们还去除了空格。

如果您想要不使用正则表达式的解决方案:

导入集合
句子=“这是一个恰巧很短的测试句子”
如果句子[i-1]=“h”],字符=[句子[i]表示范围(1,len(句子))内的i
most_common_char=集合。计数器(字符)。most_common(1)

如果您想要不使用正则表达式的解决方案:

导入集合
句子=“这是一个恰巧很短的测试句子”
如果句子[i-1]=“h”],字符=[句子[i]表示范围(1,len(句子))内的i
most_common_char=集合。计数器(字符)。most_common(1)

只需按您的字符将其拆分,然后获取后面的字母即可

import collections
sentence = "this is a test sentence that happens to be short"
character = 'h'
letters_after_some_character = [part[0] for part in str.split(character)[1:] if part[0].isalpha()]
print(collections.Counter(letters_after_some_character).most_common())

只要按你的性格把它们分开,然后把信放在后面

import collections
sentence = "this is a test sentence that happens to be short"
character = 'h'
letters_after_some_character = [part[0] for part in str.split(character)[1:] if part[0].isalpha()]
print(collections.Counter(letters_after_some_character).most_common())

这看起来很有趣,我得去看看那个柜台。顺便说一句,这个问题建议使用“h”作为要查找的字符。在我看来,使用
h
作为搜索字符是一个错误的选择,因为
h
在字符串中出现得很早也很晚。这看起来很有趣-我必须检查一下计数器类。顺便说一句,问题建议使用“h”作为要查找的字符。在我看来,使用
h
作为搜索字符是一个错误的选择,因为
h
在字符串中出现得很早也很晚。