问答详情

python中如何实现列表去重不打乱顺序?

1104次观看
标签: 如何实现 顺序 列表
老师回答

方法一:使用集合set去重

l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print l2

方法二:使用用sort()中的key字段进行设定

#随便创建一个有重复数据的列表
lt1 = [0,1,2,3,4,4,5,5,6,12,6,7,7,8,8,8,8,9,9,10,11,10,64]
#把列表二次转换
lt = list(set(lt1))
#index()是为了从列表中找到某个值第一项的索引位置,
#sort(key,reverse)是改变原来列表的元素位置,不会生成一个新列表,reverse默认是true,就是升序。
lt.sort(key=lt1.index)
print(lt)

方法三:使用reduce()函数去重

list = [1,4,3,3,4,2,3,4,5,6,1]
func = lambda x,y:x if y in x else x + [y] In 
reduce(func, [[], ] + list)
输出结果:
[1, 4, 3, 2, 5, 6]

免费直播

    精选课程
    相关推荐
    python中append()和extend()有什么区别?
    刘老师 Python编程

    python列表中,append()和extend()都可以在在原有列表上增加对象,但是使用起来有很大区别。append()用于在列表末尾添加新的对象,任意对象都是可以的,列表只占一个索引位,会修改原来的列表。extend()向列表尾部追加一个列表,对象必须是一个可以迭代的序列,将列表中的每个元素都追加进来,会在已存在的列表中添加新的列表内容。详情请看本文。

    一、append()

    用于在列表末尾添加新的对象,列表只占一个索引位,在原有列表上增加。

    1、语法

    list.append(obj)

    2、参数obj 

    向列表中添加一个对象obj ,即添加到列表末尾的对象;

    任意对象都是可以的;

    直接将整个obj放入列表末尾。

    3、返回值

    无返回值,但是会修改原来的列表。

    4、使用实例

     lia.append(lib)
     lia>>   ['aa', 1, 'bb', None, ['cc', 2, {'dd': 3}]]

    二、extend() 

    向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加。

    1、语法

    list.extend(seq)

    2、参数seq 

    把一个序列seq的内容添加到列表中,即元素列表;

    对象必须是一个可以迭代的序列;

    将seq打散后依次放入列表末尾。

    3、返回值

    无返回值,但会在已存在的列表中添加新的列表内容。

    4、使用实例

    lia.extend(lib)      不能用变量接收
    
    lia>>  ['aa', 1, 'bb', None, 'cc', 2, {'dd': 3}]

    以上就是python中append()和extend()的对比分析,希望能对你有所帮助哦~

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司