字典
字典
语法
{key:value}:key是关键字,必须是不可变类型,value是key对应的值,两者是一对,value可以是任意数据类型。
创建字典
方法一:使用{}来创建。如:d={'name':'ivan};d2={},d2是空字典
方法二:使用dic()来创建。如:d=dic(),创建一个空字典
通过Key访问value
p = {'name':'bob','age':100}
print(p['name']) # 通过Key访问value
get()方法也可以通过key访问value
是dic[key]这种方法的高级版。使用dic[key]方法时,如果Key不存在,会引发Keyerror错误,get()方法则只会返回None,不会导致错误
p = {'name':'bob','age':100}
print(p.get('name')) # 结果跟p['name']一样
setdefault()也可以通过key访问value
与前两个方法不同的是如果要获取的key在字典中不存在,该方法会先为该Key指定一个默认的value,再获取这个value
p = {'name':'bob','age':100}
print(p.setdefault('gender','女')) # 女
print(p) #{'name': 'bob', 'age': 100, 'gender': '女'}
给字典添加key-value对
如果字典中已经有这个Key,则修改该key对应的value,否则增加新的key-value对。
p = {'name':'bob','age':100}
p['gender'] = '女'
print(p) # {'name': 'bob', 'age': 100, 'gender': '女'}
通过key删除value
p = {'name': 'bob', 'age': 100, 'gender': '女'}
del p['gender']
print(p) # {'name': 'bob', 'age': 100}
dic.clear()清空字典
p = {'name': 'bob', 'age': 100, 'gender': '女'}
p.clear()
print(p) # {}
a.update(b):用b字典去更新另a字典。
如果a字典与b字典有相同的key,则用b字典的value跟新a字典中的value,如果两个字典的Key不相同,则会把b字典中的Key-value对添加到字典a中
p = {'name': 'bob'}
d = {'name':'jack'}
p.update(d)
print(p) # {'name':'jack'}
p = {'name': 'bob'}
d = {'gender':'女'}
p.update(d)
print(p) # {'name': 'bob', 'gender': '女'}
items()获取所有的Key-value对
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.items())
keys()获取所有的key
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.keys()) # dict_keys(['name', 'age', 'gender'])
values()获取所有的value
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.values()) # dict_values(['bob', 100, '女'])
pop(key)获取指定key对应的value,并将这对Key-value删除
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.pop('gender')) # 女
print(p) # {'name': 'bob', 'age': 100}
popitem()弹出底层存储的最后一个Key-value对,并将这个Key-value对删除
这个方法弹出的时一个元组
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.popitem()) # ('gender', '女')
fromkeys()用给定的多个Key创建字典,这些Key的value默认是None,也可以指定默认的value
d = dict.fromkeys(['name','age'],'bob') print(d) # {'name': 'bob', 'age': 'bob'}
posted on 2020-03-29 16:38 VinceZhang 阅读(130) 评论(0) 收藏 举报
浙公网安备 33010602011771号