首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python list ,set,di

很多时候我们可能要频繁的进行元素的find 或in操作,本人一直天真的以为python的list做了hash,通过红黑树来高效查找···直到今天我真正来测试它和set,dict的查找效率时,才发现自已想太多了...先看代码: __author__ = 'jmh081701' import numpy import time l=[] sl=set() dl=dict() r=numpy.random.randint...start=time.clock() for i in range(100000): t=i in sl end=time.clock() print("set:",end-start) #计算通过...查找效率:set>dict>list 单次查询:看来list 就是O(n)的;而set做了去重,本质应该一颗红黑树(猜测,STL就是红黑树),复杂度O(logn);dict类似对key进行了hash,...dict比set多了一步hash的过程,so 它比set慢,不过差别不大。 so,如果是要频繁的查找,请使用set吧!

50010

Pythonset的用法

python 的集合类型和 其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), intersection...1先看下python 集合 类型的不重复性,这方面做一些去重处理非常的好,比如我们要处理一些数据,想把重复的数据给 去掉,然后在操作的话,可以把它转换成集合类型,然后在由集合类型转换成其他的类型...python 列表 的类型,调用列表的排序方法。...('abcde') b = set('bdcf') 求集合的交集: a & b 结果是:set(['c', 'b', 'd']) 求差集: a - b 结果是:set(['a',...'e']) 求联合: a|b 结果是:set(['a', 'c', 'b', 'e', 'd', 'f']) 总结:python 集合和数学的集合概念比较像,经常用在数据的去重处理和一些数据的中转处理

78430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    pythonset集合的用法

    参考链接: Pythonset的union pythonset和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素....| t 返回一个新的 set 包含 s 和 t 的每一个元素  s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 的公共元素  s.difference(t)...s - t 返回一个新的 set 包含 s 中有但是 t 没有的元素  s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 不重复的元素  s.copy...两个 sets 在也只有在这种情况下是相等的:每一个 set 的元素都是另一个的元素(二者互为subset)。...删除元素 x, 如果不存在则引发 KeyError  s.discard(x)  如果在 set “s”存在元素 x, 则删除  s.pop()  删除并且返回 set “s”的一个不确定的元素,

    89720

    python set大小_python set集合

    集合set 可变的 无序的 不重复的元素集合 set定义 初始化 set() 生成一个空集合 set(iterable) 可通过可迭代对象生产一个新的集合 s1 =set() s2= set(range...) 增加一个元素到set 如果元素存在,什么都不做 update(*others) 合并其他元素到set元素来 参数others必须是可迭代对象 就地修改 set删除 remove(elem) 从set...移除一个元素 元素不存在,抛出异常keyError异常 discard(elem) 从set移除一个元素 元素不存在,什么都不做 pop() -> item 移除并返回任意的元素 空集返回KeyError...找出为未完成的任务 业务,任务ID一般不可以重复 所有已完成任务ID放到一个set,假设为COMPLETED,它是ALL的子集 ALL – COMPLETED = UNCOMPLETED 集合练习...随机产生2组各10个数字的列表,如下要求: 每个数字取值范围[10,20] 统计20个数字,一共有多少个不同的数字 #交集 2组之间进行比较,不重复的数字有几个?

    1K20

    python set大小_python set集合

    参考链接: Python 集合set remove() 集合set  可变的  无序的  不重复的元素集合  set定义 初始化  set() 生成一个空集合  set(iterable) 可通过可迭代对象生产一个新的集合... 元素不可以索引  set可以迭代  set增加  add(elem)  增加一个元素到set  如果元素存在,什么都不做  update(*others)  合并其他元素到set元素来  参数others...必须是可迭代对象  就地修改  set删除  remove(elem)  从set移除一个元素  元素不存在,抛出异常keyError异常  discard(elem)  从set移除一个元素  元素不存在...找出为未完成的任务  业务,任务ID一般不可以重复  所有已完成任务ID放到一个set,假设为COMPLETED,它是ALL的子集  ALL - COMPLETED = UNCOMPLETED  集合练习... 随机产生2组各10个数字的列表,如下要求:  每个数字取值范围[10,20]  统计20个数字,一共有多少个不同的数字  #交集  2组之间进行比较,不重复的数字有几个?

    1.6K20

    Python关于集合(set)的思考

    虽然python或者说集合这个东西很基础甚至很简单,但我还是想在这里白话白话自己的一个过程。         集合这个东西最早我是在数学里听到的,集合之间可以做一些运算,比如求交集,并集,归属等等。...而集合在数学算是一种散列的数据结构,通俗点来说就是无序的。...接下来就讲一下使用pythonset集合的属性来对比文件差异,效果如下: sh-4.1# mydiff Please input two argvs....懂linux的人都知道diff工具也可以对比文件的差异,但其实还是有差异的,另外我只是针对pythonset实践一下想法,请不要耻笑我。。。。 源码部分(代码比较粗糙,不喜勿喷啊): #!...关于python set的思考目前就到这里,然而关于python,我还在继续,有想法会继续和大家分享,也希望成长之路有人一起交流。

    91050

    Pythonset 和dict 的总结

    set(iterable)  定义一个set 例如:set1=set(range(100)) set 的元素 set的元素必须是可hash,元素可以迭代,不可以索引。...在集合增加一个元素,如果元素存在,什么都都不做,时间复杂度O(1) update(*others)   在集合合并其它元素到set来,参数必须是可迭代对象,直接修该set 删除: remove (...elem)  从集合移除一个元素,元素不存在,抛出KeyError异常。...discard(elem)    从集合移除一个元素,元素不存在,什么也不做。...pop()   从集合移除任意元素(由于不可索引),空集返回KeyError异常 clear()   移除所有元素 由于set是非线性数据结构,不可索引,所以set中元素无法修改,要么直接删除,要么加入新的元素

    1.4K20

    pythonset和frozenset方法和区别

    , len(set),和 for x in set。...set('cheeseshop') True >>> set('bookshop') >= set('shop') True六、遍历访问集合的值(可变集合和非可变都支持)>>> s=set('cheeseshop...注意上面使用集合操作运算符所产生的仍然是可变集合,但是如果左右操作数的顺序反过来,结果就不一样了:>>> t | sfrozenset(['c', 'b', 'e', 'h', 'k', 'o', 'p', 's'])>>> t ^ s#Python...() 删除集合 s 的所有元素九、集合类型操作符、函数和方法函数/方法名 等价运算符 说明所有集合类型:len(s) 集合基数: 集合 s 中元素的个数set([obj]) 可变集合工厂函数; obj...必须是支持迭代的,由 obj 的元素创建集合,否则创建一个空集合frozenset([obj]) 不可变集合工厂函数; 执行方式和 set()方法相同,但它返回的是不可变集合obj in s 成员测试

    23420

    python创建集合的语句_Python 集合(set) 介绍

    参考链接: Python 集合set intersection_update() 集合 set  集合是可变的容器  集合内的数据对象都是唯一的(不能重复多次的)  集合是无序的存储结构,集合的数据没有先后关系...}  集合的构造函数:set  set() #创建一个空的集合对象(不能用{}来创建空集合)  set(iterable) #用可迭代对象创建一个新的集合对角  # 示例:  s = set()  s...e;如果元素已经存在,则不添加  S.remove(e)        #从集合删除一个元素,如果元素不存在于集合,则会产生一个KeyError错误  S.discard(e)         #从集合...)        #S - s2 补集运算,返回存在于在S,但不在s2的所有元素的集合  S.difference_update(s2)     #等同于 S -= s2  S.intersection...=#in / not in#(以上运算规则等用于set的规则)  固定集合的方法:  相当于集合的全部方法去掉修改集合的方法  python基础总结  阶段总结  #数据类型:#不可变类型:#数字:bool

    1.7K30

    python set集合排序_Python Set集合「建议收藏」

    Python Set集合 Python 的集合,和数学的集合概念一样,用来保存不重复的元素,即集合的元素都是唯一的,互不相同。...从内容上看,同一集合,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError 错误。...由于 Python set 集合是无序的,所以每次输出时元素的排序顺序可能都不相同。...1) 使用{}创建 在 Python ,创建 set 集合可以像列表、元素和字典一样,直接将集合赋值给变量,从而实现创建集合的目的,其语法格式如下: setname = {element1, element2...访问set集合元素 由于集合的元素是无序的,因此无法向列表那样使用下标访问元素。访问集合元素最常用的方法是使用循环结构,将集合的数据逐一读取出来。

    1.1K20

    Python Set集合

    # 集合的定义 set1 = set() #定义一个空的集合 set2 = {1,2,3} # 增加一个元素 set1.add(5) #增加多个: set1.update([5,6,7,8])...30} print(a | b) # a和b的并集 {10, 20, 30, 50} print(a & b) # a和b的交集 {20} print(a ^ b) # a和b不同时存在的元素...for 变量1,变量2 in 集合: 使用变量1和变量2 集合的序列函数: len() 计算集合的长度 max() 获取集合的最大值 min() 获取集合的最小值 set() 创建空集合或者将其他数据转换为集合...集合的方法: add -- 增加集合元素 name = {'d', 's'} name.add('d') name 返回结果:{'d', 's'} name.add('sd') name 返回结果:...的所有包含在 new set 里的元素 li = ('s', 'd') name = {'sd', 'd', 's'} name.difference_update(li) name 返回结果:{'sd

    45220
    领券