记录字典的几个知识点。
dict创建字典方式:
python中赋予参数值是通过括号,而利用索引调用序列中的元素是通过[ ]
1、利用给工厂函数dict赋予一个二元列表或元组,其自动生成字典
ps:其他工厂函数还有int(), str(), list(), tuple
a = dict([['A','a'],['B','b']])
{'A': 'a', 'B': 'b'}
b = dict([('A','a'),('B','b')])
{'A': 'a', 'B': 'b'}
得到同样的字典
2、利用关键字参数创建字典
a = dict(男神="An",女神="Jia")
>>> a
{'男神': 'An', '女神': 'Jia'}
3、利用fromkeys创建统一值的字典。
fromkeys(iterable, value=None, /) from builtins.type
| Returns a new dict with keys from iterable and values equal to value.
注意,返回的是一个新的字典
fromkeys是字典的一个bif,所以应该在字典内使用
ps:range()可以作为一个iterable
字典的bif:
1、items()将字典中的每个键值对取出形成一个列表
items(...)
D.items() -> a set-like object providing a view on D's items
b = a.items()
>>> b
dict_items([('男神', 'An'), ('女神', 'Jia')]) #此处元组是因为键值对关系不能改变,列表是存储字典中的每一个元素(字典中元素的单位是一个键值对)
2、keys()将字典中的每个键取出形成一个列表,同理values
>>> b = a.keys()
>>> b
dict_keys(['男神', '女神']) #这些bif是将字典中的元素放大一个列表中
keys(...)
D.keys() -> a set-like object providing a view on D's keys
3、fromkeys在上面提过
4、get()函数返回一个键对应的值,若不存在该键则返回None或者自定义
get(...)
| D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
该函数解决了访问字典时可能出现的键值对不存在而使程序报错的问题
对于任何输入的k,Python默认寻找该名称的键。
ps:在序列中查找的是元素的值而不是索引号
5、clear()、copy()分别是清空和拷贝
clear(...)
| D.clear() -> None. Remove all items from D.
| copy(...)
| D.copy() -> a shallow copy of D
ps:赋值空序列、字典的操作是无法清空列表的。赋值是“贴标签”的过程,同一地址被两个不同的指针指向,只要列表没有被Python自动清除,这个列表可以一直被访问。而清空是地址的清空,所有指针都无法访问;拷贝是将不同标签贴在“长得一样但不同“的对象上。