Python对list去重】的更多相关文章

Python对list去重 方法一 新建新的列表,利用not in命令去重.这种方法看起来不够简便,但是保留了原列表中的顺序.代码如下: list1 = [1,2,3,4,1,1,2,5,4,3] list2 = [] for i in list1: if i not in list2: list2.append(i) print(list2) 这样最终的输出就为:[1, 2, 3, 4, 5] 方法二 利用set的自动去重功能,这种方法就是将列表先转化为集合再进一步转化为列表,利用了集合的去重…
注:set 对类对象去重,在于重写__eq__方法和__hash__方法,如果没有重写__hash__会导致People类对象不是可hash的 #!/usr/bin/env python # -*- coding: utf-8 -*- class People: def __init__(self, name, age, sex, weight): self.name = name self.age = age self.sex = sex self.weight = weight def __…
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: 复制代码代码如下: ids = [1,2,3,3,4,2,3,4,5,6,1]news_ids = []for id in ids:    if id not in news_ids:        news_ids.append(id) print news_ids 这样也可行,但是看起来不够爽. 用set 另外一个解决方案就是用set: 复制代码代码如下: ids = [1,4,3,3,4,2…
首先要明确序列值类型是否可哈希,因为可哈希的值很简单就可以用 in /not in 写个生成器去判断,如果是不可哈希的就要去转换为可哈希的再用 in/not in 去判断 原地不可变类型(可哈希): 数字类型:int, float, decimal.Decimal, fractions.Fraction, complex 字符串类型:str, bytes tuple frozenset 布尔类型:True, False None 原地可变类型(不可哈希): list dict set 举例可哈希…
一.循环去重   二.用 set() 去重 1.set()对list去重 2.list 是有序的,用 sort() 把顺序改回来  三.利用 dict 的属性来去重 1.用 dict 的 fromkeys + keys 来去重 2.拆分 四.最后总结 也有很多其他方式,这里是三种典型的.简洁的.   优 劣 第一种 计算过程简单明了 代码复杂 第二.三种 需要对Python各个基础数据的特性和各自之间的转换有所了解. 代码简单…
一.一个列表中可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素是重复的,下面的函数用于找出哪些元素重复了,以及重复的次数. 代码: from collections import Counter #引入Counter a = [1, 2, 3, 3, 4, 4] b = dict(Counter(a)) print(b) print ([key for key,value in b.items() if value > 1]) #只展示重复元素 print ({key…
def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item) if val not in seen: yield item seen.add(val) def deleteRepeat(lst): ''' 列表去重 :param lst: :return: ''' if not lst: return lst try: l = list(dedupe(ls…
# 去除重复行数据 keep:'first':保留重复行的第一行,'last':保留重复行的最后一行,False:删除所有重复行df = df.drop_duplicates( subset=['YJML','EJML','SJML','WZLB','GGXHPZ','CGMS'], # 去重列,按这些列进行去重 keep='first' # 保存第一条重复数据 )…
raw_list = [ [ 'CS_SUPP_INFO', 'A', '1'], [ 'CS_SUPP_INFO', '1', 'A'], [ 'CS_SUPP_INFO', '1', 'A'], [ 'CS_SUPP_INFO', 'A', '1'], [ 'CS_SUPP_INFO', 'A', '2'], [ 'CS_SUPP_INFO', 'A', '2'], [ 'CS_SUPP_INFO', 'A', '3'] ] # 排序,只有排序后,下面用集合去重才能排除子列表中子元素顺序的影…
直接用set就行,比如: l = [1, 1, 2, 2, 3, 4, 5] s = set(l) c = [i for i in s] print c 结果为: [1, 2, 3, 4, 5] 其中第三行利用了python的列表生成式…
我们在数据处理时,经常需要用到对重复数据进行过滤处理.  对数据去重有两种处理方式,如下: 1.对重复数据去重,并且会自动排序 使用函数  set # 列表去重 list_a = [6, 6, 5, 1, 2, 2, 3, 4, 4, 4, 6, 7, 8, 8, 8, 10] # 仅去重 list_aa = set(list_a) print(list_aa) 结果如下: 细心的小伙伴就会发现,不仅去重了,还对数据进行了重新排序. 2.对数据去重不改变原有顺序 # 列表去重 list_a =…
利用set()方法实现对象去重,重写__hash__方法和__eq__方法告诉程序什么样的对象是同一个对象 # 写一个类 拥有100个对象 # 拥有三个属性 name age sex # 如果两个对象的name 和 sex 完全相同 # 我们就认为这是一个对象 # 忽略age属性 做这100个对象的去重工作 class Person(): def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex…
怎么快速的对列表进行去重呢,去重之后原来的顺序会不会改变呢? 去重之后顺序会改变 set去重 列表去重改变原列表的顺序了 l1 = [1,4,4,2,3,4,5,6,1] l2 = list(set(l1)) print(l2) # [1, 2, 3, 4, 5, 6] 但是,可以通过列表中索引(index)的方法保证去重后的顺序不变. l1 = [1,4,4,2,3,4,5,6,1] l2 = list(set(l1)) l2.sort(key=l1.index) print(l2) # [1…
>>> l=[,,,,,,] >>> list(set(l)) [, , , ] >>>…
old_lst = [2, 2, 1, 1, 3, 4] new_lst = list(set(old_lst)) new_lst.sort(key=old_lst.index) print(new_lst) new_lst1 = [] for i in old_lst: if i not in new_lst1: new_lst1.append(i) print(new_lst1) 1 第一种方法利用了集合 2 第二种方法利用了遍历查找…
mailto = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa'] addr_to = list(set(mailto)) addr_to.sort(key = mailto.index)…
1.使用内置函数set() set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 2.创建一个空的列表进行比较,把不重复的元素添加到新的列表中 #coding=utf-8 l = [1, 2, 4, 3, 2, 3, 5] new_l = [] for i in l: if i not in new_l: new_l.append(i) print new_l…
这次去测试一下 python 的set去重,速度怎么样? 我们要做的是把文件一次性读取到内存中,然后去重,输出去重的长度. 第一步:对 121w 条数据去重,看去重话费的时间 上证据: 第二步:对 1210 w 条数据去重,看去重话费的时间 第三步:对 1.21 亿 条数据去重,看去重话费的时间…
一,Python的数据结构-集合 1,集合的定义 Python中集合是以{}括起来的,例如x=set({1,2,3,4,5}),这就是一个集合,集合的特点有:(1),去重的(2),无序的,集合的作用用:如下,(1)去重,把一个列表变成集合,就自动去重了(2)关系测试,测试两组数据之前的交集.差集.并集等关系 对于集合的无序这里要说一下,并不是你定义的时候不能写重复的元素,其实是可以写重复的元素的,并且python也不会报错,只不过在输出的时候时候,或者在做其它方面的处理时,python会已去重的…
为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字. 每一讲涉及5~10道面试题,整个系列的文章初步规划有20篇. 今天的面试题 第1题:1行代码实现1到100的和? 分析:这题考察的是对Python内置函数的了解程度 Python常见的内置函数有 官方查询手册如下 https://docs.python.org/3/library/functions.h…