创建唯一列表(my def)

2024-09-28 17:04:55 发布

您现在位置: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']

编辑:标识可能是不正确的,当粘贴一些丢失,所以这不是一个标识错误或某事


Tags: 项目代码in列表fordefrangegreen
2条回答

Maurice Meyer已经在您的代码中发现了错误,但一般来说,此算法不是最佳的—要在列表中找到唯一的值,只需执行以下操作:

newlist = list(set(oldlist))

您正在附加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']

相关问题 更多 >