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

Python列表关键词计数:未出现单词如何补零?

问题描述

需要从列表中查找指定关键词的出现次数,若关键词未在列表元素中出现则返回0。示例中collabor出现4次,part出现0次;当前代码输出仅为[['collabor', 4]],期望输出为[['collabor', 4], ['part', 0]]。

现有代码如下:

str1 = ["collabor", "part"]
x10 = []
for y in wordlist:
    for string in str1:
        if y.find(string) != -1:
            x10.append(y)

from collections import Counter
x11 = Counter(x10) 
your_list = [list(i) for i in x11.items()]
rowssorted = sorted(your_list, key=lambda x: x[0])
print(rowssorted)
解决方案

原代码的问题在于Counter只会统计实际匹配到的元素关联关键词,未找到的关键词不会被纳入结果。需要主动遍历所有指定关键词,从统计结果中获取计数,未匹配到则设为0。

修改后的代码:

from collections import Counter

str1 = ["collabor", "part"]
x10 = []
for y in wordlist:
    for string in str1:
        if y.find(string) != -1:
            x10.append(string)  # 改为直接添加匹配到的关键词,统计更精准

x11 = Counter(x10)
# 遍历所有指定关键词,确保每个词都有对应结果
your_list = [[word, x11.get(word, 0)] for word in str1]
rowssorted = sorted(your_list, key=lambda x: x[0])
print(rowssorted)

改动说明

  1. 将x10.append(y)改为x10.append(string):原代码添加的是包含关键词的原元素,修改后直接添加匹配到的关键词,让Counter直接统计关键词的出现次数,逻辑更清晰。
  2. 用列表推导式遍历str1:通过x11.get(word, 0)获取每个关键词的计数,不存在则返回0,确保所有指定关键词都出现在最终结果中。
  3. 保持按关键词排序的逻辑,输出符合期望格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:50:18