Python实现检测嵌套列表中子列表元素重复并添加'found'标识
解决方案
你的问题出在代码里硬指定了要检测的元素c=4,没法自动处理所有子列表的末尾元素,也判断不了元素是否在其他子列表重复。按照需求,正确的思路是先统计所有子列表末尾元素的出现次数,再根据次数判断是否追加"found"。
实现代码
listm = [[2, 3, 4], [6, 7, 4], [10, 11, 12], [14, 15, 16], [18, 19, 12]] # 第一步:统计所有子列表末尾元素的出现次数 end_counts = {} for sublist in listm: end_val = sublist[-1] end_counts[end_val] = end_counts.get(end_val, 0) + 1 # 第二步:遍历每个子列表,判断是否追加"found" for sublist in listm: if end_counts[sublist[-1]] > 1: sublist.append("found") print(listm)
代码说明
- 第一步用字典
end_counts统计每个末尾元素出现的次数:遍历每个子列表,取最后一个元素sublist[-1],用get方法累加计数,不存在的元素默认初始化为0再加1。 - 第二步再次遍历子列表,检查当前子列表末尾元素的计数是否大于1(说明在其他子列表重复出现),如果是就追加"found"字符串。
运行这段代码后,输出结果和你预期的一致:
[[2, 3, 4, 'found'], [6, 7, 4, 'found'], [10, 11, 12, 'found'], [14, 15, 16], [18, 19, 12, 'found']]
内容的提问来源于stack exchange,提问作者user289017
相关产品推荐
相关产品推荐

