gpt4 book ai didi

python - 如何获取字符串python的连续字数

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:29 25 4
gpt4 key购买 nike

我正在尝试制作一个 python 脚本,它接受一个字符串并给出连续单词的计数。比方说:

string = " i have no idea how to write this script. i have an idea."

output =
['i', 'have'] 2
['have', 'no'] 1
['no', 'idea'] 1
['idea', 'how'] 1
['how', 'to'] 1
['to', 'write'] 1
...

我试图在不从集合中导入集合、计数器的情况下使用 python。我所拥有的在下面。我正在尝试使用 re.findall(#whatpatterndoiuse, string) 遍历字符串并进行比较,但我很难弄清楚如何操作。

string2 = re.split('\s+', string. lower())
freq_dict = {} #empty dictionary
for word in word_list:
word = punctuation.sub("", word)
freq_dic[word] = freq_dic.get(word,0) + 1

freq_list = freq_dic.items()
freq_list.sort()
for word, freq in freq_list:
print word, freq

使用我不想要的集合中的计数器。它还以一种不是我上面提到的格式产生输出。

import re
from collections import Counter
words = re.findall('\w+', open('a.txt').read())
print(Counter(zip(words,words[1:])))

最佳答案

不用 zip 解决这个问题相当简单。只需构建每对单词的元组并在字典中跟踪它们的计数。只有少数特殊情况需要注意 - 当输入字符串只有一个单词时,以及当您位于字符串末尾时。

试一试:

def freq(input_string):
freq = {}
words = input_string.split()
if len(words) == 1:
return freq

for idx, word in enumerate(words):
if idx+1 < len(words):
word_pair = (word, words[idx+1])
if word_pair in freq:
freq[word_pair] += 1
else:
freq[word_pair] = 1

return freq

关于python - 如何获取字符串python的连续字数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33723089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com