从Python的另一个列表中返回唯一值的列表

时间:2019-02-08 04:32:32

标签: python for-loop if-statement

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

UserType userType = dataSnapshot.getValue(UserType.class); // create a class named UserType

if(userType.type == "student"){
    // goto student activity
}else if(userType.type == "teacher") {
    // goto teacher activity
}

输出为:

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]

此外,我还没有接触过Python中的SET。那么有人可以让我知道我的原始代码是否可以工作吗?

1 个答案:

答案 0 :(得分:1)

尝试一下

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]