我正在编写一个函数来删除列表中的重复整数,但我认为我不是最有效的方法。有什么建议?
def remove_dups(items):
new_list = sorted(items)
i_postion = 0
if len(new_list) > 1:
for i in new_list:
counter = 1
while counter < len(new_list):
if i_postion + counter < len(new_list):
if new_list[i_postion] == new_list[i_postion + counter]:
new_list.remove(new_list[i_postion + counter])
counter += 1
i_postion += 1
#A check if the list is only one number multiple times
if new_list[0] == new_list[1]:
new_list.remove(new_list[1])
else:
return(new_list)
return(new_list)
答案 0 :(得分:1)
如果您不需要订单且列表L
的所有元素都是不可变的,请使用集合:
L = [3, 4, 5, 4, 2, 3, 5]
>>> res = list(set(L))
如果您需要保留订单:
res = []
seen = set()
for ele in L:
if ele in seen:
continue
res.append(ele)
seen.add(ele)
>>> res
[3, 4, 5, 2]