代码之家  ›  专栏  ›  技术社区  ›  Karthik S

从python中的另一个列表返回唯一值的列表[duplicate]

  •  2
  • Karthik S  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我需要创建一个新列表,其中包含来自另一个列表的唯一值,还必须维护顺序。 我的代码:

    def unique_elements(a):
        newlist = []
        for i in range(len(a)):
            if a[i] not in a[i+1:] and a[i-1::-1] :
                    newlist.append(a[i])
        return newlist
    

    输出为:

    unique_elements([1,2,2,3,4,3])
    [1, 2, 4, 3]
    

    我得到的是半正确的结果,在这个顺序是不维持的。正确的输出应该是:

    [1,2,3,4]
    

    有人能告诉我哪里出错了吗?

    我从另一个岗位得到了这个解决方案:

    def unique_elements(a):
        newlist = []
        for i in a:
            if i not in newlist:
                    newlist.append(i)
        return newlist
    

    另外,我还没有接触到python中的集合。如果我的原始代码可以工作,有人能告诉我吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sociopath    7 年前

    试试这个

    def unique_elements(a):
        newlist = []
        for i in a:
            if i not in newlist:
                newlist.append(i)
        return newlist
    
    
    xyz = [1,1,2,4,6,2,2,4,5]
    
    print(unique_elements(xyz))
    

    输出:

    [1, 2, 4, 6, 5]