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

Python列表各数据类型元素数量统计实现方法咨询

统计Python列表各数据类型元素个数的实现方案

给定待统计示例列表:
elements = [2, 3, 'Py', '10', 1, 'SQL', 5.5, True, 3, 'John', None, 7]

核心实现思路

  • 遍历列表内每个元素,精准获取元素对应的实际类型
  • 用字典类计数结构做累计,以类型作为键、对应元素出现次数作为值
  • 遍历完成后整理成可读格式输出统计结果

关键注意点:Python中bool类型是int的子类,如果使用isinstance()做类型归属判断,会出现布尔值被归为整数的情况,优先使用type()做精准类型匹配可以避免这类统计偏差

基础实现版本

不需要依赖额外库,纯原生语法实现,兼容性最高:

elements = [2, 3, 'Py', '10', 1, 'SQL', 5.5, True, 3, 'John', None, 7]
type_stat = {}

for item in elements:
    item_type = type(item)
    # 字典get方法实现计数累加,不存在的键默认值为0
    type_stat[item_type] = type_stat.get(item_type, 0) + 1

# 格式化输出结果
for type_obj, count in type_stat.items():
    print(f"类型 {type_obj.__name__}: 元素个数 {count}")

运行后输出结果为:

类型 int: 元素个数 5
类型 str: 元素个数 4
类型 float: 元素个数 1
类型 bool: 元素个数 1
类型 NoneType: 元素个数 1

简洁优化版本

借助标准库collections.Counter简化计数逻辑,代码更精简:

from collections import Counter

elements = [2, 3, 'Py', '10', 1, 'SQL', 5.5, True, 3, 'John', None, 7]
# 生成器表达式逐元素提取类型,直接传给Counter完成统计
type_stat = Counter(type(item) for item in elements)

# 输出结果逻辑和基础版本一致
for type_obj, count in type_stat.items():
    print(f"类型 {type_obj.__name__}: 元素个数 {count}")

如果有需要按继承关系统计的需求(比如将布尔值归入整数类下计数),可以手动调整类型判断规则,替换type(item)的获取逻辑即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 19:27:01