Python中set和dict的总结-创新互联
Set
创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、做网站、成都网站设计、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。set的定义:
set是可变的,无序的,不重复的元素组成的可迭代的集合。
set () 定义一个空集合。
set(iterable) 定义一个set
例如:set1=set(range(100))
set 中的元素
set中的元素必须是可hash,元素可以迭代,不可以索引。
可hash的数据类型:
数值型:int 、float、complex
布尔型: True 、False
字符串: string 、 bytes
None
set的方法:
增加:
add (elem) 在集合中增加一个元素,如果元素存在,什么都都不做,时间复杂度O(1)
update(*others) 在集合中合并其它元素到set中来,参数必须是可迭代对象,直接修该set
删除:
remove (elem) 从集合中移除一个元素,元素不存在,抛出KeyError异常。
discard(elem) 从集合中移除一个元素,元素不存在,什么也不做。
pop() 从集合中移除任意元素(由于不可索引),空集返回KeyError异常
clear() 移除所有元素
由于set是非线性数据结构,不可索引,所以set中元素无法修改,要么直接删除,要么加入新的元素。
可以做成员运行:
in 和not in 由于使用的是hash算法,时间复杂度为O(1)
字典 dict
dict的定义:
dict是由key-value 键值对的组成的,可变的,无序的,key不重复的数据的集合
d = dict() 定义一个空字典
d= { } 定义一个空字典
dict(** kwargs) 使用name= value 初始化一个字典
dict(iteable , **kwargs) 使用可迭代对象(必须是一个二元组)和name= value 初始化一个字典
dict(mapping,**kwarg) 使用一个字典构建另一个字典
d={‘a’:1,’b’:2,’c’:3}
类方法dict.fromkeys(iteranble,value)
dict 的方法:
字典元素的访问
d[key] 返回key对应的值value,key不存在抛出KeyError异常
get(key[,default]) 返回key对应的值value,key不存在返回缺省值,如果没有缺省值返回None
setdefault(key,[,default]) 返回key对应的值value ,key不存在,添加kv 对,value设置为默认的给定的值,并返回默认值,如果默认值没有设置,缺省为None
增加
d[key] =value 将key对应的值修改为value ,Key不存在添加新的kv对
update([other]) 返回空,使用另一个字典的kv对更新字典,key不存在就添加key存在,覆盖key对应的value。直接修改原字典。
删除
pop(key[,default]) key存在,移除它,并返回他的value,不存在,返回给定的默认值,默认值未设定,key不存在则抛出KeyError异常。
popitem() 移除并返回一个任意的键值对,字典为empty,抛出KeyError异常
clear() 清除字典
del 语句, 删除的是对象的引用,名称,而不是对象本身。只是减少对象的引用计数
字典的遍历方法有:
遍历key 、 遍历 value 、遍历(key 、value) 、 遍历item
set和dict的区别:
set 和dict的区别是,set没有value,set和dict的原理是一样,字典的key和set的元素都是不能放入可变的对象,可变对象是不能判断两个是否相等,也就无法保证元素不重复。
dict和list的比较
dct的特点:
查找和插入数据速度极快,不会随着数据的增加而变慢,需要占用大量的内存,内存浪费比多。
list的特点:
查找和插入的时间对着元素的增加而增加,需要占用大量的内存,内存浪费比较少。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:Python中set和dict的总结-创新互联
文章分享:http://cdiso.cn/article/iidcj.html