一、如何创建字典
创建字典同样有两种方式:
第1种:a = {} 或 a = {‘a‘: 1,’b‘:2}
第2种:a = dict() 或 a = dict (a=1, b=2) 或 a = dict ( [(‘a’, 1),(‘b, 2)] )
tips: dict()创建一个空字典。若要创建有内容的字典,可以通过a=x, b=y的形式传入dict(),又或者通过列表嵌套元组的方式。
>>> d = dict() >>> print(d) {} >>> d = dict(a=1, b=2) >>> print(d) {‘a‘: 1, ‘b‘: 2} >>> d = dict([(‘a‘, 10),(‘b‘, 20)]) >>> print(d) {‘a‘: 10, ‘b‘: 20}
二、字典操作
我们来看一下字典有哪些方法:
>>> dir(dict)
[‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘,
‘clear‘, ‘copy‘, ‘fromkeys‘, ‘get‘, ‘items‘, ‘keys‘, ‘pop‘, ‘popitem‘, ‘setdefault‘, ‘update‘, ‘values‘]
我们可以看到,字典的操作方法有clear,copy,fromkeys,get, items,keys,pop,popitem,setdefault, update,value
1、clear():清除字典内容
>>> d = {‘a‘:1, ‘b‘:2} >>> print(d) {‘a‘: 1, ‘b‘: 2} >>> d.clear() >>> print(d) {}
我们可以看到,字典调用clear(0)方法后,变成了空字典。
2、copy():复制字典
>>> d = {‘a‘:1, ‘b‘:2} >>> d_copy = d.copy() >>> print(d_copy) {‘a‘: 1, ‘b‘: 2}
3、fromkeys():从可迭代对象获取key值并创建列表
a_fromkeys = dict.fromkeys(["a", "b", "c"], [1, 3, 4]) print(a_fromkeys)
结果:
{‘a‘: [1, 3, 4], ‘b‘: [1, 3, 4], ‘c‘: [1, 3, 4]}
4、get():根据key值获取对应的value值
>>> d = {‘a‘:1, ‘b‘:2} >>> s = d.get("a") >>> print(s) 1
我们可以看到,通过字典调用get()并传入key值,就可以获取对应的value值了。
tips:其实这个a["key"]是一样的
5、keys()、values()、items():获取字典的key,获取字典的value,获取字典的key和value
>>> d = {‘a‘:1, ‘b‘:2} >>> print(d.keys()) dict_keys([‘a‘, ‘b‘]) >>> print(d.values()) dict_values([1, 2]) >>> print(d.items()) dict_items([(‘a‘, 1), (‘b‘, 2)])
我们可以看到,keys()返回了dict_keys对象,以列表形式返回。values()返回了dict_values对象,也是以列表形式返回。items()返回了dict_items()对象,以列表嵌套元组的方式返回。
6、pop():删除字典种key对应的键值对。
>>> d = {‘a‘:1, ‘b‘:2, ‘c‘:3} >>> s = d.pop("b") >>> print(s) 2 >>> print(d) {‘a‘: 1, ‘c‘: 3}
7、popitem():随机删除key和对应的value值。其实这里的随机是伪随机,其实和列表一样都是弹出最后一个元素,但由于字典是无序的,所以弹出的并不每次一致,给人的感知是随机弹出的。
fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9} d = fruits.popitem() print(fruits) print(d)
结果:最后一个键值对被弹出来并返回。
{‘apple‘: 8, ‘banana‘: 11} (‘watermelen‘, 2.9)
8、setdefault():用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。
fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9}
print(fruits)
# 设置默认值,该key在dict中不存在,新增key-value对
print(fruits.setdefault(‘pear‘, 9.2))
print(fruits)
# 设置默认值,该key在dict中存在,不会修改dict内容
print(fruits.setdefault(‘apple‘, 3.4))
print(fruits)
结果:我们可以看到,若key值不在字典里,则会以默认值新增,若存在则不新增也不改变
D:\python\python.exe E:/practiceMore/test_mark1.py {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9} 9.2 {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘pear‘: 9.2} 8 {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘pear‘: 9.2
总之,setdefault() 方法总能返回指定 key 对应的 value;如果该 key-value 对存在,则直接返回该 key 对应的 value;如果该 key-value 对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value。
9、update():更新字典
fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9} fruits.update({"aaa": 12}) print(fruits)
结果:{”aaa":12}被添加到了fruits字典中了。
{‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘aaa‘: 12}
原文:https://www.cnblogs.com/ctltest/p/14794220.html