有没有更有效的方法去除重复整数

2024-09-23 22:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个函数来删除列表中的重复整数,但我认为我做的不是最有效的方法。有什么建议吗?你知道吗

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)

Tags: 方法函数列表newlenreturnifdef
1条回答
网友
1楼 · 发布于 2024-09-23 22:28:22

如果不需要顺序,并且listL的所有元素都是不可变的,请使用集合:

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]

相关问题 更多 >