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

Python如何实现计数器,使字典每个唯一键对应数值按出现次数自增1

Python实现键出现次数统计的三种方案

原生字典实现(无依赖)

直接用Python内置dict完成统计,不需要导入任何库:

# 待统计的IP列表示例,可替换为你自己的数据源
ip_list = [
    "192.168.164.92", "192.168.164.92", "192.168.164.92", "192.168.164.92",
    "192.168.164.91", "192.168.164.91",
    "192.168.164.93", "192.168.164.93", "192.168.164.93", "192.168.164.93", "192.168.164.93", "192.168.164.93", "192.168.164.93", "192.168.164.93",
    "192.168.164.84", "192.168.164.84", "192.168.164.84", "192.168.164.84", "192.168.164.84"
]

count = {}
for ip in ip_list:
    count[ip] = count.get(ip, 0) + 1

# 输出结果
for k, v in count.items():
    print(f"{k} : {v}")

使用defaultdict简化逻辑

导入collections.defaultdict省去手动设置默认值的步骤:

from collections import defaultdict

count = defaultdict(int)
for ip in ip_list:
    count[ip] += 1

# 输出逻辑同上
for k, v in count.items():
    print(f"{k} : {v}")

直接用专属计数器Counter

collections.Counter是Python标准库专门为计数场景设计的工具,代码最简洁,还附带高频统计等额外功能:

from collections import Counter

count = Counter(ip_list)

# 输出逻辑同上
for k, v in count.items():
    print(f"{k} : {v}")

# 额外功能示例:取出现次数最高的2个IP
# print(count.most_common(2))

所有方案的输出结果都和要求的示例完全一致:

192.168.164.92 : 4
192.168.164.91 : 2
192.168.164.93 : 8
192.168.164.84 : 5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:24:10