创建唯一列表(我的def)

时间:2017-06-21 17:28:18

标签: python

我不确定为什么我的代码没有做我想要的(我想返回一个独特的项目列表)

B = ["blue", "blue", "red",   "green", "red",  "blue", "yellow", "green", "blue", "red"]
def makeUnique(list):
    unique = []
    for i in range(0, len(list)):
        if list[i] not in unique:
            unique.append(item)
    return unique
print makeUnique(B)

返回

['red', 'red', 'red', 'red', 'red', 'red', 'red']

编辑:ident可能不正确,当粘贴一些时遗漏了,所以它不是一个ident错误或某事

2 个答案:

答案 0 :(得分:3)

Maurice Meyer已经在你的代码中发现了这个错误,但总的来说,这个算法并不是最优的 - 要在列表中找到唯一值,只需这样做:

newlist = list(set(oldlist))

答案 1 :(得分:2)

您附加item,该功能不存在于该功能的上下文中。你必须附加你正在迭代的项目:

B = ["blue", "blue", "red",   "green", "red",  "blue", "yellow", "green", "blue", "red"]

def makeUnique(list):
    unique = []
    for i in range(0, len(list)):
        if list[i] not in unique:
            unique.append(list[i])
    return unique


print(makeUnique(B))  # ['blue', 'red', 'green', 'yellow']