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

实现字符串列表频次统计字典遇困,求技术指导

问题描述

给定一个字符串列表,创建一个字典,其中键为字符串,值为对应字符串在列表中的重复次数,禁止使用额外库。

示例

>>> problem1(['Hello', 'Hello', 'Friends', 'Friends', 'Friends', 'Home'])
{'Hello': 2, 'Friends': 3, 'Home': 1}

我的尝试代码

def problem2(mystrings):
    mydct = {}

    for x in mystrings:

        mydct = [mystrings]

    for  in mydct:

        return mydct


print (problem2(['Hello', 'Hello', 'Friends', 'Friends', 'Friends', 'Home']))

我无法实现将字符串作为字典键、其出现次数作为对应值的功能,恳请提供实现指导。


解决方案

你的代码逻辑存在核心问题:循环中错误地将字典重赋值为包含原列表的列表,后续循环还存在语法错误(缺失循环变量),直接返回了错误的结构。要实现统计功能,核心是遍历列表时更新字典的计数,以下是两种可行实现:

方法一:基础条件判断统计

def problem2(mystrings):
    count_dict = {}
    for s in mystrings:
        # 若字符串已在字典中,计数加1;否则初始化为1
        if s in count_dict:
            count_dict[s] += 1
        else:
            count_dict[s] = 1
    return count_dict

print(problem2(['Hello', 'Hello', 'Friends', 'Friends', 'Friends', 'Home']))

方法二:用dict.get()简化代码

利用字典的get()方法可以省去条件判断,该方法会返回键对应的值,若键不存在则返回指定默认值:

def problem2(mystrings):
    count_dict = {}
    for s in mystrings:
        count_dict[s] = count_dict.get(s, 0) + 1
    return count_dict

两种方法都能正确输出目标结果:{'Hello': 2, 'Friends': 3, 'Home': 1},完全符合需求且无需额外库。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:20:28