一、字典
1、概述
字典是一个无序的、可修改的,元素呈键值对的形式(这种结构类型通常也称为映射,或者叫关系数组,也有叫哈希表的),以逗号分割的,以大括号包围的数据类型。字典中的每个元素由2部分组成,键:值。键必须是唯一的,但值不必,值可以取任何数据类型,但键必须是不可变的,所以可以用数字,字符串或元组充当,而用列表就不行。
字典和列表一样,也能够存储多个数据,字典中的值没有特殊的顺序。列表中找某个元素时,是根据下标进行的,如果下标很多,查找不方便。当索引不好用时,可以使用字典。由于字典是无序的,所以我们在定义字典和字典生成之后的元素的顺序是不同的。
2、定义
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
dict = {'name': 'Runoob', 'Age': 7, 'Class': 'First'}dict1 = { 'abc': 123, 98.6: 37 }print('利用get方法访问字典中的值:',dict.get('Age')) #利用get方法访问字典中的值print('利用键名访问字典中的值:',dict['Age']) #利用键名访问字典中的值,把相应的键放入到方括号中print('如果用字典里没有的键访问数据,报错:',dict['Ages']) #如果如果用字典里没有的键访问数据,会输出错误
输出结果:
注:get方法如果没有找到相应的值,就会输出None,后面也可以带默认的值,工作中常用。
3、列表内建函数
(1)添加和修改
代码实例:
dict = {'name': 'Runoob', 'Age': 7, 'Class': 'First'}dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}#添加、修改dict.update(dict1) #update把dict1的键值对更新到dictprint('update把dict1的键值对更新到dict:',dict)dict.update({'Age':'add'}) #如果键存在,覆盖之前的值;print('键存在输出覆盖后后的字典:',dict)dict.update({'Age':'add'}) #如果键不存在,在字典中添加键值对。print('键不存在添加键值对后的字典:',dict)dict['like']='sing' #添加print('输出添加后的字典:',dict)dict['like']='dance' #修改print('输出修改后的字典:',dict)
输出结果:
(2)删除
代码实例:
dict = {'name': 'Runoob', 'Age': 7, 'Class': 'First'}dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}#删除print('pop删除字典给定键 key 所对应的值:',dict1.pop(98.6))print('popitem返回并删除字典中的最后一对键和值:',dict1.popitem())del dict['Age'] # 删除键 'name'print('输出del 删除键后的字典:',dict)dict.clear() # 清空字典print('输出clear清空后的字典:',dict)del dict # 删除字典print('输出del 删除后的字典:',dict['Age'])
输出结果:
(3)查找
代码实例:
dict = {'name': 'Runoob', 'Age': 7, 'Class': 'First'}dict1 = { 'abc': 123, 98.6: 37 }#字典的取值print('返回所有key的列表:',dict.keys())print('返回所有value的列表:',dict.values())print('get方法访问字典中的值:',dict.get('Age')) #利用get方法访问字典中的值,以键取值print('get方法如果指定键不存在,默认返回None:',dict.get('Ages')) #get方法如果指定键不存在,默认返回Noneprint('get方法指定键不存在时,可以指定返回内容:',dict.get('Ages','dd')) #get方法指定键不存在时,可以指定返回内容print('setdefault方法访问字典中的值:',dict.setdefault('Age')) #利用setdefault方法访问字典中的值dict.setdefault('Ages') #setdefault方法如果键不存在,在字典中添加键并将值默认设为Noneprint('setdefault方法键不存在,在字典中添加键,值默认为none:',dict)dict.setdefault('Agess',7) #setdefault方法如果键不存在,可以设置自定义值print('setdefault方法键不存在,可以自定义值:',dict)print('items以列表返回可遍历的(键, 值) 元组数组:',dict.items()) #以列表返回可遍历的(键, 值) 元组数组print('统计字典中的键值对个数:',len(dict))print('输出字典,以可打印的字符串表示:',str(dict))
输出结果:
(4)总结
二、集合
1、概述
集合(set)是一个无序的、不重复的元素序列。与之前的列表、元组类似,可以存储多个数据,但是这些数据是不重复的。
2、定义
创建一个列表,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。如下所示:
s1 = {'apple', 'orange', 'pink', 'pear', 'banana'}s2 = {1,2,3,4,5,6,4,3,3}s3=set() #创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典print('输出空的集合的类型',type(s3))print('集合元素不重复,存在重复元素时不输出',s2) #去重功能,集合中没有重复的元素
输出结果:
3、集合间的运算
代码实例:
s1 = {'apple', 'orange', 'pink', 'pear', 'banana'}#集合间的运算s4={'pear', 'banana', 'yellow', 'green', 'red'}print('输出交集',s1&s4) #两个集合的公共部分print('输出并集',s1|s4) #两个集合合并,没有重复元素print('输出差集',s1-s4) #只存在s1中不存在s4中的元素print('输出对称差集',s1^s4) #只有在s1或s4中,但是不会同时出现在二者中
输出结果:
4、集合的 *** 作
(1)添加
代码实例:
s1 = {'apple', 'orange', 'pink', 'pear', 'banana'}s4={'pear', 'banana', 'yellow', 'green', 'red'}#添加s1.add('potato') #将将元素添加到集合中,如果元素已存在,则不进行任何 *** 作print('输出add添加后的结果',s1)s1.update({'yellow', 'green'}) #参数可以是列表,元组,字典等print('输出update添加后的结果',s1)
输出结果:
(2)删除
代码实例:
s1 = {'apple', 'orange', 'pink', 'pear', 'banana'}s4={'pear', 'banana', 'yellow', 'green', 'red'}#删除s1.remove('banana') #将元素从集合中移除,如果元素不存在,则会发生错误print('remove移除元素后的集合',s1)s1.discard('pear') #移除集合中的元素,如果元素不存在,不会发生错误print('discard移除元素后的集合',s1)s1.pop() #随机删除集合中的一个元素print('pop移除元素后的集合',s1)
输出结果:
三、各种数据类型比较
1、数据类型比较
2、可变类型与不可变类型
(1)可变类型:值可以改变------列表List、字典dict、集合set
(2)不可变类型:值不可以改变------数值类型(int,bool,float)、字符串 str、元组tuple
3、集合set、列表List、元组tuple之间可以相互转化
#集合set、列表List、元组tuple之间可以相互转化str='hello world'print('字符串转列表输出:',List(str))print('字符串转集合输出:',set(str))print('字符串转元组输出:',tuple(str))
输出结果
4、通用方法整合
(1)常见 *** 作
注:in在字典 *** 作时,判断的是字典的键
(2)python内置函数
总结
以上是内存溢出为你收集整理的python基础005----字典&集合全部内容,希望文章能够帮你解决python基础005----字典&集合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)