高级素材13字典及集合_第1页
高级素材13字典及集合_第2页
高级素材13字典及集合_第3页
高级素材13字典及集合_第4页
高级素材13字典及集合_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

视频教程入门到精通Python开发宝满教育培训出品目录01字典及集合02有关内置函数01字典及集合字典的创建格式:

字典是键值对形式{key:value},由键值(key(哈希值):value)构成,类似于关联数组或哈希表.key

一般以数字和字符串居多,值则可以是任意(类比perl语言中的散列),通过大括号的方式以键值对形式创建。

创建字典:

mydict={1:'a',2:'b'}

工厂方式创建字典: mydict=dict(([1,'a'],[2,'b']))

字典内建方法fromkeys()创建字典(字典中的元素具有相同的值,如果没给出,值默认为空): mydict={}.fromkeys((1,2),'a')

同时还可以这样:批量创建key值:缺点就在于没有办法单独分配value值 mylist=[1,2,3,4,5] mydict=dict.fromkeys(mylist,'a')字典是以key和value形式存在,key值经过hash算法,在内存映射一块保存value值得区域,key值在经过hash算法之后,会生成一个唯一的值,任意两个数哪怕只有一位不同,生成出来的hash值也是截然不同的,因此我们得出,在字典中,key值唯一,一个字典中不可能出现两个一样的key,并且,因为做了hash,所以底层会维护一个hash表,也就是说字典的访问效率,要比列表和元组要高。key值,因为要做hash,所以,一些不可变数据无法当作字典的key值,比如列表,字典。但是不可变元素,比如数字,字符串,元组可以当作字典的key值访问字典中的值:

求出所有的key值: mydict={1:'a',2:'b'} print(mydict.keys())

求出所有的value值: mydict={1:'a',2:'b'} print(mydict.values())这里要注意,我们得到的字典返回的值是一个一个字典值或是字典key的数据类型,我们要在细致的去处理,可以使用工厂函数,list,tuple把结果转换成我们想要的数据类型

访问对应的key得到value:

mydict={1:'a',2:'b'} print(mydict[1])

如果我们访问一个字典中没有的key,那么会出现一个keyerror的错误。在python中,我们访问一个字典中没有的key,可以使用in还有notinin:如果在字典中,那么返回True,不在字典中,则返回False

mydict={1:'a',2:'b'} 1inmydict

迭代访问字典,获取其中的key值,

mydict={1:'a',2:'b'} forkeyinmydict: print(key,mydict[key])更新字典中的值: mydict=dict(([1,'a'],[2,'b'])) mydict[1]='c'删除字典中的值: mydict=dict(([1,'a'],[2,'b'])) delmydict[1]还可以通过内置函数pop来删除一个元素并把值返回出来: mydict=dict(([1,'a'],[2,'b'])) value=mydict.pop(1)清空字典: mydict.clear()集合(set):把不同的元素组成一起形成集合,是python基本的数据类型。(无序不重复)集合元素(setelements):组成集合的成员集合使用大括号{}创建,以及工厂函数set创建一个集合set(可变),frozenset(不可变,可hash的集合) mylist=[1,2,3,4,5] myset=frozenset(mylist)访问集合:

集合是无序的,无法通过索引和切片的方式去访问其中的值。

可通过循环迭代: mylist=[1,2,3,4,5] forvarinset(mylist):

print(var)集合的内部结构和dict很类似,但是不存储value。判断一个元素是否在集合中非常快。更新集合: myset.add() myset.update()如果传入的是一个序列,将被拆分成单个元素,并且去掉重复。

可变集合支持以上操作,但是不可变集合不支持该操作。删除集合中的元素或者是这个集合: myset.remove(var) delmyset集合类型操作符: in和notin操作符判断某个元素是否在一个集合中

判断两个集合是否相等,两个集合中的成员一模一样。 子集和超集:(严格判断) python使用: a<b a是否是b的子集 a.issubset(b) a>b a是否是b的超集a.issuperset(b) #超集就代表着a中的元素中弄囊括了所有b的集合元素交并补联合:(|)(union())

a|ba.union(b)在a集合中和b集合去重数据元素,剩下的组合到一起返回一个新的集合交集:(&)(intersection)

a&ersection(b)在a集合和b集合中,共同含有的集合成员组成到一起返回一个新的集合差补:(-)(difference)

a-ba.difference(b)在a集合中,去掉所有与b集合中相同的元素,只在a中保留b中没有的集合成员对称差分:(^)(symmetric_difference)找出两个集合中,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论