字典
文章目录
创建字典
字典时无序的
在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是字符串类型,因为字符串类型会对value有描述性的功能。
d = {'name': 'shen', 'age': 20, 'gender': 'male'}
print(d, type(d))
>>>{'name': 'shen', 'age': 20, 'gender': 'male'} <class 'dict'>
使用dict()创建字典
d = dict(name='shen', age=20, gender='male') # 这里key的名字只能为字母和数字组成的,不可以纯数字,但可以纯字母
print(d, type(d))
>>>{'name': 'shen', 'age': 20, 'gender': 'male'} <class 'dict'>
使用 fromkeys()创建字典
# fromkeys会从**元组**中取出每个值当做key,然后与None组成key:value放到字典中
d = {}
d = d.fromkeys(('name','age','sex'),None)
print(d)
>>>{'age': None, 'sex': None, 'name': None}
补充
当Key值重复时,只会保留一个,最后读到的
d = {'name': 'shen', 'age': 20, 'gender': 'male', 'name' : 'jia'}
print(d, type(d))
>>>{'name': 'jia', 'age': 20, 'gender': 'male'} <class 'dict'>
键keys(),值values(),键值对items()
d = {'age': 20, 'gender': 'male'}
# 获取字典所有的key
d = {'age': 20, 'gender': 'male'}
a = d.keys()
print(a)
>>>dict_keys(['age', 'gender'])
# 获取字典所有的value
d = {'age': 20, 'gender': 'male'}
a = d.values()
print(a)
>>>dict_values([20, 'male'])
# 获取字典所有的**键值对**
d = {'age': 20, 'gender': 'male'}
a = d.items()
print(a)
>>>dict_items([('age', 20), ('gender', 'male')])
d = {'age': 20, 'gender': 'male'}
a = dict(d.items())
print(d, a)
>>>{'age': 20, 'gender': 'male'} {'age': 20, 'gender': 'male'}
接下来的皆为引用Egon老师的代码
dict.get()
>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> dic.get('k1')
'jason' # key存在,则获取key对应的value值
>>> res=dic.get('xxx') # key不存在,不会报错而是默认返回None
>>> print(res)
None
>>> res=dic.get('xxx',666) # key不存在时,可以设置默认返回的值
>>> print(res)
666
# ps:字典取值建议使用get方法
dict.pop()
>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> v = dic.pop('k2') # 删除指定的key对应的键值对,并返回值
>>> dic
{'k1': 'jason', 'kk2': 'JY'}
>>> v
'Tony'
dict.popitem()
>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> item = dic.popitem() # 随机删除一组键值对,并将删除的键值放到元组内返回
>>> dic
{'k3': 'JY', 'k2': 'Tony'}
>>> item
('k1', 'jason')
dict.update()
# 用新字典更新旧字典,有则修改,无则添加
>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> dic.update({'k1':'JN','k4':'xxx'})
>>> dic
{'k1': 'JN', 'k3': 'JY', 'k2': 'Tony', 'k4': 'xxx'}
dict.fromkeys()
>>> dic = dict.fromkeys(['k1','k2','k3'],[])
>>> dic
{'k1': [], 'k2': [], 'k3': []}
dict.setdefault()
# key不存在则新增键值对,并将新增的value返回
>>> dic={'k1':111,'k2':222}
>>> res=dic.setdefault('k3',333)
>>> res
333
>>> dic # 字典中新增了键值对
{'k1': 111, 'k3': 333, 'k2': 222}
# key存在则不做任何修改,并返回改完的字典里的key对应的value值
>>> dic={'k1':111,'k2':222}
>>> res=dic.setdefault('k1',666)
>>> res
111
>>> dic # 字典不变
{'k1': 111, 'k2': 222}