如何查找Python列表中重复元素的索引并删除末尾重复项
查找列表中重复元素的非首次索引并删除末尾重复项
针对给定的列表 mylist = [1,2,3,4,5,6,7,8,9,10,1,2],可以按以下步骤操作:
1. 查找非首次出现的1和2的索引
利用列表的index()方法,指定从首次出现位置的下一位开始搜索,就能精准定位到重复元素的索引:
mylist = [1,2,3,4,5,6,7,8,9,10,1,2] # 定位重复的1的索引 first_1_pos = mylist.index(1) duplicate_1_pos = mylist.index(1, first_1_pos + 1) print("重复元素1的索引:", duplicate_1_pos) # 输出:10 # 定位重复的2的索引 first_2_pos = mylist.index(2) duplicate_2_pos = mylist.index(2, first_2_pos + 1) print("重复元素2的索引:", duplicate_2_pos) # 输出:11
2. 删除末尾的重复元素
由于重复的2的索引比1大,删除时要先删索引大的元素,避免删除小索引后大索引的位置发生偏移:
# 先删除索引11的元素(重复的2) del mylist[duplicate_2_pos] # 再删除索引10的元素(重复的1) del mylist[duplicate_1_pos] print(mylist) # 输出:[1,2,3,4,5,6,7,8,9,10]
快速处理方案(仅适用于重复项在列表末尾的场景)
如果已经明确重复的1和2在列表最后两位,可以直接用pop()方法连续删除两次末尾元素:
mylist = [1,2,3,4,5,6,7,8,9,10,1,2] mylist.pop() mylist.pop() print(mylist) # 同样得到目标列表:[1,2,3,4,5,6,7,8,9,10]
内容的提问来源于stack exchange,提问作者Apo1
相关产品推荐
相关产品推荐

