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

统计字符串列表中各字符串的字母出现次数并按指定格式输出

Python实现列表内字符串的字符频次统计与格式化输出

需求说明

  • 给定存储多字符串的初始列表:list1 = ["apple", "avocado", "pear", "orange"]
  • 输出规则:对列表内每个字符串,单独统计字符串中每个出现过的字母的出现次数,逐行输出固定格式内容,格式为[字符串] contains [次数] [字母],参考输出片段:
    apple contains 1 a
    avocado contains 2 a
    pear contains 1 a
    orange contains 1 a
    avocado contains 1 c
    

核心实现逻辑

  • 顺序遍历列表中的每一个字符串元素
  • 对单个字符串,提取所有非重复出现的字符,避免对同一个字符重复输出统计结果
  • 计算每个字符在当前字符串中的出现频次
  • 按照指定格式拼接内容并打印

具体可行方案

方案1:原生语法无依赖实现

逻辑直观,不需要导入任何第三方/标准库模块,适合快速编写轻量脚本。如果需要严格按照字符在字符串中首次出现的顺序输出结果(避免集合去重带来的无序问题),可以通过辅助集合记录已输出过的字符实现:

list1 = ["apple", "avocado", "pear", "orange"]

for word in list1:
    seen = set()
    for char in word:
        if char not in seen:
            count = word.count(char)
            print(f"{word} contains {count} {char}")
            seen.add(char)

注:如果对字符输出顺序无要求,可以直接通过set(word)生成去重字符集合简化代码,逻辑更简洁。

方案2:标准库Counter高效实现

借助Python标准库collections.Counter完成字符频次统计,整体时间复杂度为O(n)(n为所有字符串的总长度),相比多次调用字符串count()方法的O(n²)复杂度,在处理长字符串、大列表时性能优势明显:

from collections import Counter

list1 = ["apple", "avocado", "pear", "orange"]

for word in list1:
    char_stats = Counter(word)
    for char, count in char_stats.items():
        print(f"{word} contains {count} {char}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 04:15:01