1. 创建字典
1.1 dict(**kwarg)
- 通过传入dict函数关键字参数来创建字典,注意key是字符串的话也不用加引号,相当于变量。
dict_1 = dict(a=1,b=2)
print(dict_1)
1.2 dict(mapping,**kwarg)
- 通过传入一个映射对象(字典)以及关键字参数来创建字典
dict_2 = {'a':1,'b':2}
dict_3 =dict({'a':1,'b':2},c=3,d=4 )
print(dict_3)
1.3 dict(iterable,**kwarg)
- 通过传入dict函数一个双值子序列以及关键字参数来创建字典。
- 双值子序列:首先是一个序列对象,比如元祖、列表等,而且这个序列对象的每一个元素也是一个含有两个元素的序列。比如((1,2),(3,4),(5,6))、[[‘a’,‘b’]]。
dict_4 = dict([('a',1),('b',2)])
print(dict_4)
dict_5 = dict([('a',1),('b',2)],c=3, d=4)
print(dict_5)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
1.4 fromkeys(iterable[,value])
- 作用:用于创建一个key为iterable里面元素的字典,不传入value的值的话就默认value是None。
keys = ['a','b','c']
dict_1 = dict.fromkeys(keys)
print(dict_1)
values = [1,2,3]
dict_1 = dict.fromkeys(keys,values)
print(dict_1)
2. 字典常用操作
d = {'a':1, 'b':2, 'c':3}
list(d)、tuple(d)、set(d)
list(d)
tuple(d)
set(d)
len(d)
len(d)
d[key]
d['b']
d[key] = value
- 因为字典是可变对象,多有可以进行修改操作。通过赋值来修改对应key的值。
d['a'] = 99
print(d)
- 若key不存在于字典d里,那么会新增加一组键值对 key:value
d['d'] = 4
print(d)
del d[key]
del d['d']
print(d)
key in d
'a' in d
'e' in d
iter(d)
for i in iter(d):
print(i)
a
b
c
clear()
- 清空字典d的键值对 ,但是不会删除字典d这个对象,操作完d为一个空字典。
d.clear()
print(d)
copy()
- 返回一个d的副本dd。为浅复制。一般修改副本dd不会对d产生影响,但是也有特例。
d = {'a':[1,2],'b':(1,2),'c':3}
dd = d.copy()
dd['b'] = (99,98)
dd['c'] = 999
print(dd)
print(d)
dd['a'][0] = 99
print(dd)
print(d)
get(key[, default ])
- 获取到字典d里key对应的值,若这个key不存在也不会报错,和直接用d[key]查询的区别就在这。可以设置default,使得key不存在时返回的值。
d = {'a':1,'b':2,'c':3}
d.get('b',0)
d.get('e',0)
d['e']
items(),keys(),values()
- 分别为获取到字典d的键值对,所有键,所有值。注意他们的格式不是元祖、列表。
d = {'a':1,'b':2,'c':3}
print(d.items())
print(d.keys())
print(d.values())
pop(key[, default ])
- 删除对应key的那个键值对。当不设置defaul时,若key不存在会报错。设置default时,若key不存在会返回设置的default的值。
- 和 del d[key] 的区别。区别就是这个pop方法可以通过设置default来使得key不存在的情况下不报错,而是返回设置的default的值。
d = {'a':1,'b':2,'c':3}
d.pop('a',0)
d.pop('e',0)
popitem()
- 作用:从后向前逐一删除字典d里的键值对,并且以双值元祖形式返回该键值对。当删除了所有键值对,d为空字典时,再调用该方法会报错。
reversed(d)
- python3.8更新的,之前没有。返回由字典d的所有keys组成的迭代器,然后是反序的。其实就相当于 reversed(d.keys()) ,两者没区别。
setdefault(key[, default ])
- 作用:当key存在于字典d中时,会返回key对应的值。若key不存在于字典d中,则会创建一个以key为键的键值对,对应的value分两种情况:
- 没设置default,value为None,即增加键值对 key:None。
- 设置了default的值为 x,则增加键值对 key:x。
update([other ])
d = {'a': 1, 'b': 2, 'c': 3}
d.update(a = 99, e = 999)
d.update({'a':99,'e':999})
d.update([('a',99),('b',999)])
print(d)
- 原理:当key存在于d,则更新其值。若key不存在于d,则添加这个键值对
d | other_d
- python 3.9 新增
- 作用:返回两个字典的并集。
- 当key重复时,只取other_d的key对应的键值对