获取列表并返回仅包含原始元素的列表的函数?

时间:2016-06-11 22:43:47

标签: python list python-3.x

我正在研究Think Python Textbook,它给出的一个问题是创建一个带有列表的函数,并返回一个只包含原始元素的列表。到目前为止我所拥有的是:

def remove_duplicates(l):
    index = 0
    new_l = []
    dup_l = []
    while index < len(l):
        if l[index] in l[index+1:] or l[index] in new_l:
            dup_l += [l[index]]
            index = index + 1
        elif l[index] in dup_l:
            index = index + 1
        else:
            new_l += [l[index]]
    return new_l

我觉得必须有更简洁,pythonic的方式来编写这个函数。有人可以帮助这个初学程序员吗?

1 个答案:

答案 0 :(得分:3)

我假设您想手动,以了解python语法,因此这是一种方法。

更新以获取有关仅获取仅发生一次且不删除重复项的元素的评论,您可以将if条件替换为if L.count(element) == 1:,它将返回{{ 1}}正如你所要求的那样。

[1,2,4]

如果你想深入研究python语法,你可以做list comprehension并进一步简化它,同时仍然不使用失去元素顺序的def unique(L): uniqueElements = [] for element in L: if element not in uniqueElements: uniqueElements.append(element) return uniqueElements print(unique([1,2,3,3,4])) 方法:

set