首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python学习记录10-删除序列相同元素并保持顺序

Python学习记录10-删除序列相同元素并保持顺序

作者头像
huolong
发布于 2023-10-23 18:12:13
发布于 2023-10-23 18:12:13
6010
举报
文章被收录于专栏:技术指北技术指北

本节的内容是怎样在一个序列上面保持元素顺序的同时消除重复的值? 如果我们想消除一个队列里的重复元素,那么可以利用集合的特性来实现,比如以下代码,但是这样的代价是重复的元素去掉了。但是列表里的元素不是按顺序排列了。 请注意set会自动排序,我这里期望的顺序是3,1,2,23 按照元素的先来后到展示。

代码语言:javascript
复制
a = [3,1,1,2,3,1,1,23]
print(set(a))  #{1, 2, 3, 23}

如果要是保持顺序且消除重复元素,我们可以使用以下代码来实现:

代码语言:javascript
复制
def unq(items):
    list1 = list()
    for item in items:
        if item not in list1:
            list1.append(item)
        else:continue
    return list1 
print(unq(a))  #[3, 1, 2, 23]

新的场景来了,比如我的是一个字典列表,且里面有重复的字典,那么用上面的代码也是可以胜任的

代码语言:javascript
复制
def unq(items):
    list1 = list()
    for item in items:
        if item not in list1:
            list1.append(item)
        else:continue
    return list1

a = [{'a': 1, 'b': 2}, {'a': 1, 'b': 3}, {'a': 1, 'b': 2}, {'a': 2, 'b': 4}]
print(unq(a))  #[{'a': 1, 'b': 2}, {'a': 1, 'b': 3}, {'a': 2, 'b': 4}]

如果你想在排列去重的时候,按照顺序排列,那么可以利用set的特性,我们将上面代码的list换成set即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年10月18日,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档