【问题标题】:How can I store my result in tuple in Python如何在 Python 中将结果存储在元组中
【发布时间】:2021-12-01 19:05:34
【问题描述】:

编写一个名为 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 代码查找每个单词的频率

我试过这个 文本 = 'a aaa a aaaa' def word_freq(str): 元组 = () 计数 = {} 对于 str 中的 x: 如果 x 在 count.keys() 中: 计数[x] += 1 别的: 计数[x] = 1 打印(计数) def count_letters(字): 字符 = "一个" 计数 = 0 对于单词中的 c: 如果字符 == c: 计数 += 1 返回计数 word_freq(文本)

【问题讨论】:

  • 你试过了,有什么问题?
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 我试图解决给定的问题,但无法对字符串中字符单词中的每个字母进行计数

标签: python string tuples character


【解决方案1】:

下面的代码可以满足您的需求。现在我将解释它是如何工作的。首先,我们将创建一个名为“WC”的字典,它将保存我们句子中每个 n 字符单词的计数。现在我们开始。首先,它接收来自用户的字符串。然后它获取字符串并使用 split() 将字符串转换为单词列表。然后对于每个单词它检查它的长度,如果它是 2,它会忽略它。否则,它会将我们字典中该 n 个字符的单词的计数加 1。 在检查每个单词之后,我们使用 wc.items() 将我们的字典变成一个元组列表。列表中的每个元素都是一个元组,其中包含每个单词的数据。每个元组有 2 个元素。第一个是每个单词的字符数,第二个元素是它在句子中存在的次数。有了这个,现在我们需要做的就是根据逆向的字符数(从高字符数到低字符数)对这个列表进行排序。我们使用 sorted 函数来做到这一点。我们基于 x[0] 进行排序,这意味着每个元组的第一个元素,即每个单词的字符数。最后,我们返回这个元组列表。你可以打印它。 如果有任何不清楚的地方,请告诉我。此外,您可以在每一行放置 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))

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 2018-08-12
    • 2021-12-28
    • 2011-07-02
    • 2018-07-11
    • 2016-04-03
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多