python - 如何在 Python 中将结果存储在元组中
问题描述
编写一个名为 word_freq(text) 的函数,它接受一个字符串参数。这个字符串不会有任何标点符号。对该字符串中的 'n' 个字符单词的数量进行计数,并按计数的降序返回形式为 [(n, count), (n-1, count) ...] 的元组列表。例如:
示例: word_freq('a aaa a aaaa')
结果:[(4, 1), (3, 1), (1, 2)]
注意:对于 2 个字符的单词,这不会显示任何内容。str1 = 'a aaa a aaa' str.split(str1) str.count(str1)
def word_freq(str):查找每个单词频率的 Python 代码
我试过这个 text = 'a aaa a aaaa' def word_freq(str): tuple = () count = {} for x in str: if x in count.keys(): count[x] += 1 else: count[ x] = 1 print(count) def count_letters(word): char = "a" count = 0 for c in word: if char == c: count += 1 return count word_freq(text)
解决方案
下面的代码可以满足您的需求。现在我将解释它是如何工作的。首先,我们将创建一个名为“WC”的字典,它将保存我们句子中每个 n 字符单词的计数。现在我们开始。首先,它接收来自用户的字符串。然后它获取字符串并使用 split() 将字符串转换为单词列表。然后对于每个单词它检查它的长度,如果它是 2,它会忽略它。否则,它会将我们字典中该 n 个字符的单词的计数加 1。在检查每个单词之后,我们使用 wc.items() 将我们的字典变成一个元组列表。列表中的每个元素都是一个元组,其中包含每个单词的数据。每个元组有 2 个元素。第一个是每个单词的字符数,第二个元素是它在句子中存在的次数。不碍事,现在我们需要做的就是根据字符数反向(从高字符数到低字符数)对这个列表进行排序。我们使用 sorted 函数来做到这一点。我们基于 x[0] 进行排序,这意味着每个元组的第一个元素,即每个单词的字符数。最后,我们返回这个元组列表。你可以打印它。如果有任何不清楚的地方,请告诉我。此外,您可以在每一行放置 print() 语句,以便更好地了解正在发生的事情。这是代码,希望对您有所帮助:您可以在每一行放置 print() 语句,以便更好地了解正在发生的事情。这是代码,希望对您有所帮助:您可以在每一行放置 print() 语句,以便更好地了解正在发生的事情。这是代码,希望对您有所帮助:
inp = input("Enter your text: ")
def word_count(inp_str):
wc = {}
for item in inp_str.strip().split():
if len(item) == 2:
continue
wc[len(item)] = wc.get(len(item), 0) + 1
return sorted(wc.items(), key=lambda x: x[0], reverse = True)
print(word_count(inp))
推荐阅读
- jmeter - 如何将带有文件上传的表单数据正文内容从邮递员转换为jmeter
- python - 有没有办法从列表项中获取一个整数?
- office-js - 禁用 Excel 功能区中的自定义按钮
- c# - UI 未使用 xamarin 中的分组 observablecollection 更新
- c# - 将句子的第一个字母转换为大写,其余为小写
- node.js - 如何跟踪电子邮件是否打开,电子邮件是否发送,电子邮件是否退回?
- python-3.x - python pandas float64在使用fillna后反对
- javascript - 使用 Controller 中的结构初始化 TempusDominus datetimepicker
- opentype - HarfBuzz - 有没有办法获得特定字体的最大前瞻/回溯字形计数?
- php - Wordpress 在 URL 中显示 /index1.php/