字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示
d = {key1 : value1, key2 : value2, key3 : value3 }
区别
列表和字典区别
列表:强调整体,记录整体的某一个特征
字典:强调个体,记录个体的多个特征。
介绍
创建
a = dict ( a= 1 , b= 2 , c= 3 )
print ( a)
b = { 'a' : 1 , 'b' : 2 , 'c' : 3 }
print ( b)
'''
字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行,有特殊的要求,两个重要的点需要记住:
1)唯一性:不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。
2)不可变:键必须不可变,所以可以用数字,字符串或元组充当,所以用列表、字典等就不行。
'''
方法-增加
方法 描述 字典名[key] = value 键不存在,将键值对添加到字典最后;如果key存在,则覆盖 setdefault(key,default_value): 键不存在,将键值对添加到字典最后。如果key存在,则不覆盖。
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
zs[ 'weight' ] = 70
print ( zs)
zs[ 'weight' ] = 80
print ( zs)
zs. setdefault( 'weight' , 70 )
print ( zs)
zs. setdefault( 'class' , 1 )
print ( zs)
方法-删除
方法 描述 pop(key) 弹出,返回并删除指定键对应的值, dict.pop(‘key’) popitem() 弹出最后一个键值对(>=3.7) clear() 清空字典 del 删除整个字典,或者通过字典的key删除对应键值对
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
print ( zs. pop( 'age' ) )
print ( "张三的重量是:" , zs. popitem( ) [ 1 ] )
print ( zs)
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
del zs[ 'name' ]
print ( zs)
zs. clear( )
print ( zs)
方法-修改
方法 描述 字典名[key]=value 通过key 添加value值,如果key存在则覆盖 update(dict) 传递一个字典,如果key相同则覆盖,没有的key则添加 reversed(d) 返回一个逆序获取字典键的迭代器
zs_1 = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
zs_2 = { "name" : 'zs' , 'weight' : 60 , "age" : 30 }
zs_1. update( zs_2)
print ( zs_1)
print ( zs_2)
zs_2. update( zs_1)
print ( zs_1)
print ( zs_2)
d = { "one" : 1 , "two" : 2 , "three" : 3 , "four" : 4 }
print ( d)
print ( list ( reversed ( d) ) )
print ( list ( reversed ( d. values( ) ) ) )
print ( list ( reversed ( d. items( ) ) ) )
方法-查
注意:
keys,values,items 获得的类型不是列表,但是是可迭代对象,可以直接使用for
循环遍历,如果需要按照列表方式操作,需要先转化为列表。
方法 描述 根据key查找 通过指定的key找对应的值 dict[‘key’] keys() 获取字典所有的键 values() 获取字典所有的值 items() 获取字典所有的键值对
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
for i in zs. keys( ) :
print ( i)
for i in zs. values( ) :
print ( i)
for i in zs. items( ) :
print ( i)
for i in zs:
print ( i)
方法-其他操作
1:get(key,[返回的信息]) 以键取值,如果指定键不存在,默认返回None,可以指定返回内容
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
print ( zs[ 'name' ] )
print ( zs. get( 'name' , "没有找到" ) )
print ( zs. get( 'hometown' , "郑州" ) )
2:in , not in 字典的赋值和遍历
zs = { 'name' : 'zs' , "age" : 20 , 'height' : 170 }
if 'hometown' in zs:
print ( "in" )
if 'hometown' not in zs:
print ( "not in" )