我在返回的输出中使用Python语言打印set()

时间:2018-01-10 03:28:45

标签: python python-3.x

我正在尝试创建一个以列表形式返回列表的唯一编号的函数。例如:

l = [1,2,2,3,4]

我的函数将返回:[1,2,3,4]

我用了一套来做这个,我的代码如下:

def unique_list(l):
    se = set(l)
    lis = [se]
    return lis
print(unique_list(t))

我的输出是:[set([1, 2, 3, 4, 5, 6, 7, 8])]

我认为它与我的代码的se = set(l)lis = [se]部分有关。但是,我正在自学,并不确定是什么导致了这一点。

3 个答案:

答案 0 :(得分:1)

您正在错误地投射列表。试试这样的事情..

def unique_list(l):
    se = set(l)
    lis = list(se)
    return lis
print(unique_list(t))

答案 1 :(得分:1)

l = [5,5,1,2,2,3,4]

def unique_list(l):
    se = set(l)  # get all the unique elements of list
    lis = list(se)  # convert set to list
    lis.sort(key=l.index)  # preserve order of original list
    return lis
print(unique_list(l))

答案 2 :(得分:0)

list(set(list_))可快速返回无序唯一商品的列表。

如果列表不重要,

set(list_)就足以用于唯一的集合。

以下是在保留顺序的同时从list_删除重复项的方法:

import collections as ct


list(ct.OrderedDict.fromkeys(list_))

在Python 3.6 +中:

list(dict.fromkeys(list_))

请参阅R. Hettinger的这个SO postblog关于在Python中统一列表的最快方法> = 3.6