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

Python统计相等元素对时报TypeError: 'NoneType' object is not subscriptable

报错根因
  • 核心错误点:Python列表的append()是原地修改方法,没有返回值(默认返回None)。你在循环中执行了list2 = list3.append(list2[a])、list2 = list3.append("")操作,直接把原本是列表的list2覆盖成了None,下一轮循环执行list2[a]尝试下标访问时,就触发了TypeError: 'NoneType' object is not subscriptable报错。
  • 额外逻辑问题:你当前的统计逻辑存在重复计数问题,同一个元素每被遍历到一次就会加一次count//2,最终统计的对数会远大于实际值;同时你通过替换空串标记已统计元素的实现方式冗余且易出问题。
修复方案

直接用collections.Counter统计每个元素的出现次数,再批量计算总对数,逻辑简洁不易出错,代码如下:

from collections import Counter

list1 = input("Введите список: ")
list2 = list1.split()
counter = 0

# 统计每个元素的出现次数
count_result = Counter(list2)
for cnt in count_result.values():
    # 每个元素能组成的对数是 出现次数//2
    counter += cnt // 2

print(list2)
print(counter)
运行示例

输入:a a b b c d d d
输出:

['a', 'a', 'b', 'b', 'c', 'd', 'd', 'd']
3

解释:a1对、b1对、d1对,总共3对,结果符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:06:04