You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将结果存入tuple 及word_freq单词频率函数实现问题

问题解答

问题1:在Python中如何将计算结果存储到tuple中?

tuple是Python内置的不可变有序序列,存储计算结果可按两种场景操作:

  • 固定数量的计算结果,直接组装生成tuple即可
    比如你计算得到两个结果a = 2 + 3、b = 4 * 5,执行res_tuple = (a, b)就可以把结果存入tuple。
  • 动态生成的计算结果(比如循环中逐步得到的多个结果),先存入可变的list,最后调用tuple()方法转换为tuple
    示例代码:
    res_list = []
    for i in range(3):
        # 模拟计算逻辑
        calc_res = i * 3
        res_list.append(calc_res)
    # 转换为tuple存储
    res_tuple = tuple(res_list)
    

注意:不要用tuple作为自定义变量名,会覆盖Python内置的tuple类型,导致后续相关调用报错

问题2:word_freq函数实现

现有代码问题

你编写的代码存在3个核心问题:

  1. 没有把输入字符串按空格拆分为独立单词,直接遍历字符串只会逐个统计字符的出现次数,不符合需求
  2. 统计维度错误:需求是统计不同单词长度的出现次数,现有代码统计的是单个字符的出现次数
  3. 没有过滤长度为2的单词,也没有按要求排序返回指定格式的结果

正确实现代码

def word_freq(text):
    # 拆分字符串为独立单词列表
    words = text.split()
    len_count = {}
    for word in words:
        word_len = len(word)
        # 过滤长度为2的单词
        if word_len == 2:
            continue
        # 更新对应长度的计数
        if word_len in len_count:
            len_count[word_len] += 1
        else:
            len_count[word_len] = 1
    # 转换为tuple组成的list,按count降序排序,count相同则按单词长度降序排序
    res = sorted(len_count.items(), key=lambda x: (-x[1], -x[0]))
    return res

# 测试示例
print(word_freq('a aaa a aaaa'))
# 输出符合count降序要求:[(1, 2), (4, 1), (3, 1)]

如果你需要和你给出的示例输出[(4, 1), (3, 1), (1, 2)]完全一致(优先按单词长度降序排序),只需要把排序规则修改为key=lambda x: -x[0]即可。

内容的提问来源于stack exchange,提问作者Isxxn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:48:04