一、方法一:使用for循环及if语句
Python列表自带的count()方法可以便捷地计算列表中元素出现的次数,我们可以使用for循环遍历列表中所有的元素,对于每个元素,使用count()方法计算该元素在列表中出现的次数。如果出现次数大于1,就表明该元素是重复的,使用index()方法输出该元素在列表中的角标。
示例代码:
lst = [1, 2, 3, 1, 4, 2, 5, 3, 6, 1]
repeat_lst = [] # 用于存储重复值
for i in lst:
if lst.count(i) > 1 and i not in repeat_lst:
repeat_lst.append(i)
print("元素值为{},对应的角标为{}。".format(i, [index for index, value in enumerate(lst) if value == i]))
输出结果:
元素值为1,对应的角标为[0, 3, 9]。
元素值为2,对应的角标为[1, 5]。
元素值为3,对应的角标为[2, 7]。
二、方法二:使用set去重
我们可以将列表转换为集合,使用set()方法去重,得到所有不重复的元素,然后使用列表推导式遍历不重复元素的列表,再使用enumerate()方法获取该元素在原列表中的角标。
示例代码:
lst = [1, 2, 3, 1, 4, 2, 5, 3, 6, 1]
unique_set = set(lst) # 转换为集合,去重
repeat_lst = [] # 用于存储重复值
for i in unique_set:
if lst.count(i) > 1:
repeat_lst.append(i)
print("元素值为{},对应的角标为{}。".format(i, [index for index, value in enumerate(lst) if value == i]))
输出结果:
元素值为1,对应的角标为[0, 3, 9]。
元素值为2,对应的角标为[1, 5]。
元素值为3,对应的角标为[2, 7]。
以上两种方法都可以实现Python列表输出重复值以及对应的角标。第一种方法使用for循环及if语句,比较适合初学者。第二种方法使用了set()方法去重,代码简洁明了,但是需要额外占用空间存储集合。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 列表输出重复值以及对应的角标方法 - Python技术站