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

如何用Python Counter统计多个列表中的唯一值数量?

解决方法

要统计嵌套列表中所有唯一单词的数量,核心是先把嵌套结构里的所有单词整合到一个可迭代对象中,再进行统计。这里提供几种实用的实现方式:

方式一:用生成器表达式扁平化列表

直接将所有子列表的元素一次性传入Counter:

from collections import Counter

my_list = [
    ['My', 'name', 'is', 'Joe'],
    ['My', 'name', 'is', 'Sally'],
    ['My', 'name', 'is', 'Mike']
]

# 遍历所有子列表,取出每个单词
counter_object = Counter(word for sublist in my_list for word in sublist)
# 统计唯一单词的数量
num_unique = len(counter_object.keys())

print(num_unique)  # 输出:6

方式二:用itertools.chain合并子列表

借助itertools模块的chain工具,可以更简洁地合并所有子列表:

from collections import Counter
from itertools import chain

my_list = [
    ['My', 'name', 'is', 'Joe'],
    ['My', 'name', 'is', 'Sally'],
    ['My', 'name', 'is', 'Mike']
]

# 合并所有子列表为一个迭代器
counter_object = Counter(chain.from_iterable(my_list))
num_unique = len(counter_object)

print(num_unique)  # 输出:6

更高效的简化方案(无需Counter)

如果只需要统计唯一单词数量,不需要计数每个单词出现的次数,直接用集合(set)处理会更高效:

my_list = [
    ['My', 'name', 'is', 'Joe'],
    ['My', 'name', 'is', 'Sally'],
    ['My', 'name', 'is', 'Mike']
]

# 将所有单词存入集合(自动去重)
unique_words = set(word for sublist in my_list for word in sublist)
num_unique = len(unique_words)

print(num_unique)  # 输出:6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:05:32