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

如何用Python计算数组重复项数量及统计密码错误信息出现次数

Python问题解决方案

1. 计算数组中的重复项数量

这里有两种实用方法,你可以根据需求选择:

方法1:使用collections.Counter(推荐)

这是Python标准库专为计数场景设计的工具,代码简洁且高效:

from collections import Counter

# 示例数组
arr = [1, 2, 2, 3, 3, 3, 4]
# 生成元素计数结果
element_counts = Counter(arr)

# 遍历打印所有元素的重复次数
for element, count in element_counts.items():
    print(f"元素 {element} 出现了 {count} 次")

# 获取特定元素的出现次数
print(f"元素2的出现次数:{element_counts[2]}")

Counter会返回一个类字典的对象,键是数组中的元素,值对应元素的出现次数,非常方便后续查询和扩展处理。

方法2:手动遍历统计

如果想理解计数的底层逻辑,可以自己实现遍历统计:

arr = [1, 2, 2, 3, 3, 3, 4]
count_dict = {}

for item in arr:
    if item in count_dict:
        count_dict[item] += 1
    else:
        count_dict[item] = 1

# 输出统计结果
for item, count in count_dict.items():
    print(f"元素 {item} 出现了 {count} 次")

2. 统计日志文件中两种错误信息的出现次数

针对你的日志文件场景,这里提供两种实用解决方案:

方法1:用Counter灵活统计(适合后续扩展)

如果以后可能新增错误类型,这种方法更容易维护:

from collections import Counter

# 初始化错误计数器
error_counter = Counter()

# 读取日志文件(自动处理文件关闭)
with open('error_log.txt', 'r') as log_file:
    for line in log_file:
        # 拆分每行内容,提取错误信息部分
        _, error_msg = line.strip().split(', ')
        error_counter[error_msg] += 1

# 将统计结果赋值给指定变量
password_too_short = error_counter.get("Password < 6", 0)
password_too_long = error_counter.get("Password > 14", 0)

print(f"Password < 6 出现次数:{password_too_short}")
print(f"Password > 14 出现次数:{password_too_long}")

方法2:直接用变量计数(更直观)

如果只需要统计这两种错误,直接用两个变量计数会更简单直观:

# 初始化计数变量
password_too_short = 0
password_too_long = 0

with open('error_log.txt', 'r') as log_file:
    for line in log_file:
        # 提取错误信息
        error_msg = line.strip().split(', ')[1]
        # 判断并更新计数
        if error_msg == "Password < 6":
            password_too_short += 1
        elif error_msg == "Password > 14":
            password_too_long += 1

# 输出最终结果
print(f"Password < 6 出现次数:{password_too_short}")
print(f"Password > 14 出现次数:{password_too_long}")

注意:使用with open语句能确保文件自动关闭,避免资源泄漏;strip()用来去除每行末尾的换行符和多余空格,split(', ')则精准拆分时间与错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:45:38