文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中set 和dict 的总结

2023-01-31 01:52

关注

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的特点:

查找和插入的时间对着元素的增加而增加,需要占用大量的内存,内存浪费比较少。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯