字典类型dict
-
-
定义方式:在{ }用逗号分隔开多个元素,每个元素都是key:value形式,其中key是不可变类型,通常是字符串类型,而value是任意类型。
-
类型转换:
d=dict(x=1,y=2,z=3) print(d) print(type(d)) #第一种类型转换 items=[('name','egon'),('age',18),('gender','male')] d={} for item in items:d[item[0]]=item[1] print(d) #列表转换成字典 第二种 items=[('name','egon'),('age',18),('gender','male')] d=dict(items) print(d) #第三种方法 # 了解 keys=['name','age','gender','height','weight'] # d={} # for key in keys: # d[key]=None d={}.fromkeys(keys,None) print(d,type(d))
常用操作+内置方法
1.按key存取值:可存可取
dic={'name':'egon','age':18}
print(dic['name'])
#这是按key 取 value值 如果key错误程序会报错
dic['name']='EGON'
print(dic)
#按key存值 根据key存入'EGON' (value)
dic['gender']='male'
print(dic)
#如果存入的key在字典中没有就会添加新的key:value
###在列表中如果索引没有添加的话会报错
l=['a','b','c']
l[0]='A'
print(l)
l[4]='AAA'
print(l)
2.长度 len
dic={'name':'egon','age':18}
print(dic)
print(len(dic))
3.成员运算 in 和 not in
字典的成员运算是以字典的key为准的,如果找不到key则会显示False
dic={'name':'egon','age':18}
print('name'in dic) # True
print('egon'in dic) # False
4.删除 del/pop/
dic={'name':'egon','age':18}
del dic['name']
print(dic)
#del 的运用
dic={'name':'egon','age':18}
res=dic.pop('name')
print(dic)
print(res)
#pop pop的返回值是与之对应的value值
ic={'name':'egon','age':18}
res=dic.popitem()
print(res)
print(type(res))
print(dic)
('age', 18)
<class 'tuple'>
{'name': 'egon'}
#popitem() 删除字典中的元组
5.键keys( ),值values(),键值对items()
在python2中对应的键keys(),values(),items()
#在python2中keys(),values(),items()会将全部对应值输出 >>> dic={'name':'egon','age':18} >>> dic.keys() ['age', 'name'] >>> dic.values() [18, 'egon'] >>> dic.items() [('age', 18), ('name', 'egon')] >>> #在python3中 >>> dic={'name':'egon','age':18} >>> dic.keys() dict_keys(['name', 'age']) >>> dic.values() dict_values(['egon', 18]) >>> dic.items() dict_items([('name', 'egon'), ('age', 18)])
6.循环
dic={'name':'egon','age':18}
for k in dic:print(k)
#在字典中不加任何操作循环是循环key
dic={'name':'egon','age':18}
for k in dic.keys(): #循环keysprint(k)
for v in dic.values(): #循环valuesprint(v)
for k,v in dic.items(): #k,v=('name', 'egon')print(k,v) #循环key:value
需要掌握的操作
7.update 更新
dic={'name':'egon','age':18}
dic.update({'height':175,'weight':180})
print(dic)
{'name': 'egon', 'age': 18, 'height': 175, 'weight': 180}
#语法 字典1.update(字典2)
#会将两个字典中相同的key:value保留,不同的添加到字典1
dic={'name':'egon','age':18}
8.setdefault
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
#当key存在时,不改原值,返回原值 dic={'name':'egon','age':18} res=dic.setdefault('name','EGON') print(dic) print(res) {'name': 'egon', 'age': 18} egon #当key不存在时,增加新值 dic={'name':'egon','age':18} res=dic.setdefault('gender','male') print(dic) print(res) {'name': 'egon', 'age': 18, 'gender': 'male'} male