Python 创建仅包含原始列表中唯一值的新列表

Python 创建仅包含原始列表中唯一值的新列表,python,list,function,numpy,unique,Python,List,Function,Numpy,Unique,我有一个函数可以查找列表的唯一值,但我无法使用它们创建新列表 import numpy as np def unique(list): x = np.array(list) print(np.unique(x)) list1 = [10, 20, 10, 30, 40, 40] unique(list1) 我的输出是唯一的值,但我想创建一个包含这些值的新列表。我以为它会像下面一样简单,但当我打印列表2时,输出显示“无”。我觉得有一个非常简单的答案,但我想不出来 lis

我有一个函数可以查找列表的唯一值,但我无法使用它们创建新列表

import numpy as np
def unique(list): 
    x = np.array(list) 
    print(np.unique(x))

list1 = [10, 20, 10, 30, 40, 40]  
unique(list1)
我的输出是唯一的值,但我想创建一个包含这些值的新列表。我以为它会像下面一样简单,但当我打印列表2时,输出显示“无”。我觉得有一个非常简单的答案,但我想不出来

list2 = unique(list1) 
print(list2)

如果顺序无关紧要,您可以使用
set
删除重复项,然后返回
列表

list1 = [10, 20, 10, 30, 40, 40]
list1 = list(set(list1))
list1
[40, 10, 20, 30]

必须返回函数的结果

试试这个:

import numpy as np
def unique(list):
    x = np.array(list)
    x = np.unique(x)
    return x

list1 = [10, 20, 10, 30, 40, 40]
new_list = unique(list1)
print(new_list)

您的函数隐式返回
None
,因为您从不显式返回任何内容。为什么需要
numpy
?您只需执行
list1=list(set(list1))
@eloon请单击答案旁边的复选标记,接受其中一个答案作为解决方案。非常感谢。这根本没有解决OP的问题,他们已经有了一个方法来获取唯一值,向他们展示了另一个方法并没有解决函数不返回任何内容的根本问题。如果他们问如何从列表中删除重复项,那无论如何都是重复的。谢谢,这更简单,顺序也没关系。谢谢,这正是我想要的。欢迎你@eloon