在字典中,键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。
10.1 字典创建dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict = {x:x+1 for x in range(10)}
10.2 字典值获取
dict['Alice']
10.3 更新字典
dict['Alice'] = 10
10.4 删除字典元素
del dict['Alice']
del dict
10.5 字典内置函数&方法
函数 描述 实例
len(dict) 计算字典元素个数,即键的总数。 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
len(dict)
str(dict) 输出字典,以可打印的字符串表示。 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
str(dict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
type(variable) 返回输入的变量类型 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
type(dict)
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
key in dict 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。
扩展:
浅拷贝:a = [1,2,3,4,5]
b = a
深拷贝:a = [1,2,3,4,5]
import copy
b = copy.deepcopy(a)
可以递归拷贝;一拷到底
注意:
1、对于不可变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间。
2、对于可变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的),进行浅拷贝
3、浅拷贝后,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象的;改变原始对象中为不可变类型的元素的值,只有原始类型受影响。