字典(dict)
一、初识字典
1.描述
字典是项目开发过程中使用频率最高的一个组合数据类型。用于存放具有映射关系的数据,比如成绩单科目和成绩是要一一对应的,语文:85,数学:92,英语:98。
2.特点
可改变的 可存放任意类型数据 存放格式为key:value ,多个键值对以逗号 分隔 key是唯一的且为不可变类型 ,元组可以作为字典的key,但列表不行。value可重复且类型无限制 。如果key重复,后面的value会替换前面的value。
dic1 = { 'name' : 'zhangsan' , 'age' : 20 , 'address' : 'BeiJing' , 'name' : 'lisi' }
print ( dic1)
3.声明
d = dict() d = {} d = {key1:value1,key2:value2,…}
fruits = {
'苹果' : { 'name' : 'apple' , 'price' : 5.00 , 'count' : 20 } ,
'香蕉' : { 'name' : 'banana' , 'price' : 2.50 , 'count' : 10 } ,
'梨' : { 'name' : 'pear' , 'price' : 3 , 'count' : 15 } ,
'桃' : { 'name' : 'peach' , 'price' : 2 , 'count' : 10 }
}
二、字典的增删改查
1.增加
方法 描述 字典名[key] = value 如果键不存在,将键值对添加到字典末尾;如果存在,则覆盖 setdefault(key,default_value) 如果键不存在,将键值对添加到字典末尾,且将值设为default;如果存在,也不会覆盖。
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
zs. setdefault( 'weight' , 70 )
zs. setdefault( 'name' , 'ls' )
print ( zs)
2.删除
方法 描述 pop(key) 根据key删除一个指定键值对,返回值为被删除的值。 popitem() 删除并返回最后一个键值对(python>=3.7);随机删除一个键值对(python<3.7) clear() 清空字典 del 删除整个字典,或者根据key删除一个指定键值对。
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
print ( "张三的重量是:" , zs. popitem( ) [ 1 ] )
print ( zs)
del zs
del zs[ 'name' ]
zs. clear( )
3.修改
方法 描述 字典名[key] = value key存在才会被修改;否则是增加。 update({key:value}) 传递一个字典,如果key相同则覆盖,没有则添加
zs_1 = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
zs_2 = { "name" : 'zs' , 'weight' : 60 , "age" : 30 }
zs_2. update( zs_1)
print ( zs_1)
print ( zs_2)
4.查看
方法 描述 字典名[key] 通过指定的key获取对应的value get(key,[返回的信息]) 根据一个key获取对应的value。不存在默认返回None,返回值可自定义。 items() 获取字典中所有的键值对,返回值是一个可迭代的对象,字典的每一个键值以列表形式放在该列表里。 keys() 获取字典中所有的key值。 values() 获取字典中所有的value值
注意:
keys,values,items 获得的类型不是列表,但是是可迭代对象,可以直接使用for循环遍历,如果需要按照列表方式操作,需要先转化为列表。
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
print ( zs. get( 'name' , "不存在" ) )
print ( zs. get( 'hometown' , "沧州" ) )
for i in zs. items( ) :
print ( i)
for i in zs. keys( ) :
print ( i)
for i in zs. values( ) :
print ( i)
for i in zs:
print ( i)
5.其他方法
方法 描述 clear() 清空字典 copy() 复制字典 fromkeys() 根据给定的数据作为key初始化一个字典。
6.其他操作
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
if 'hometown' in zs:
print ( zs[ 'hometown' ] )
d1 = { 1 : "a" , 2 : 'b}
m, n = d1
for i in d1:
print ( i)
三、字典和列表的区别
列表:强调整体,记录整体的某一个特征 字典:强调个体,记录个体的多个特征。