字典
用{ }表示:每个键:值(key:value)用冒号 :分割,每个对之间用逗号 ,分割
可存储任意类型对象
键必须是唯一的,必须是不可变的,如:字符串,数字或元组,而用列表就不行
但值可以不是,值可以取任何数据类型,
字典是支持无限极嵌套的{ 健:[ [ 值] ] }
创建时如果同一个键被赋值两次,后一个值会被记住
增加 ,修改: 字典名 [健]=值
(如果字典中没有相同健会自动添加新的健,如果有相同的健会自动修改健的值)
查.get 字典名.get(健) 或直接用健去找值
访问字典里的值:字典名[ 健 ]
删除del :
能删单一的元素也能清空字典
del 字典名['健'] # 删除键与值
字典名.clear() # 清空字典
del 字典名 # 删除字典
字典函数:
len(字典名) 计算字典元素个数,即键的总数 //字典遍历len(字典名)
str(字典名) 输出字典,以字符串的形式输出
type(字典名) 返回输入的变量类型,如果变量是字典就返回字典类型
keys(): 字典名.keys() 方法以列表返回字典所有的键。若要返回直接的列表值还需调用list()函数。
list(字典名.keys(健))
values():字典名.values() 方法以列表返回字典中的所有值。//同上
list(字典名.values(值))
items():方法以列表返回可遍历的(键, 值) 元组数组(是键和值组成的元组再组成的列表)即返回为[ ( ) ]
用法:
字典名{健:值,健:值}
for i , j in 字典名.items():
print( i, j )
-----健:值 ,健:值
循环字典健值 用两个变量去循环 for i,j in 字典名.items() 输出i,j
当字典嵌套可变元素列表或元组也可用多个变量循环
如:
zd={"a":[2,3,4],"b":[2,3,4]}
for i,[j,k,l] in zd.items():
print(i,j,k,l)
----a 2 3 4
用{ }表示:每个键:值(key:value)用冒号 :分割,每个对之间用逗号 ,分割
可存储任意类型对象
键必须是唯一的,必须是不可变的,如:字符串,数字或元组,而用列表就不行
但值可以不是,值可以取任何数据类型,
字典是支持无限极嵌套的{ 健:[ [ 值] ] }
创建时如果同一个键被赋值两次,后一个值会被记住
增加 ,修改: 字典名 [健]=值
(如果字典中没有相同健会自动添加新的健,如果有相同的健会自动修改健的值)
查.get 字典名.get(健) 或直接用健去找值
访问字典里的值:字典名[ 健 ]
删除del :
能删单一的元素也能清空字典
del 字典名['健'] # 删除键与值
字典名.clear() # 清空字典
del 字典名 # 删除字典
字典函数:
len(字典名) 计算字典元素个数,即键的总数 //字典遍历len(字典名)
str(字典名) 输出字典,以字符串的形式输出
type(字典名) 返回输入的变量类型,如果变量是字典就返回字典类型
keys(): 字典名.keys() 方法以列表返回字典所有的键。若要返回直接的列表值还需调用list()函数。
list(字典名.keys(健))
values():字典名.values() 方法以列表返回字典中的所有值。//同上
list(字典名.values(值))
items():方法以列表返回可遍历的(键, 值) 元组数组(是键和值组成的元组再组成的列表)即返回为[ ( ) ]
用法:
字典名{健:值,健:值}
for i , j in 字典名.items():
print( i, j )
-----健:值 ,健:值
循环字典健值 用两个变量去循环 for i,j in 字典名.items() 输出i,j
当字典嵌套可变元素列表或元组也可用多个变量循环
如:
zd={"a":[2,3,4],"b":[2,3,4]}
for i,[j,k,l] in zd.items():
print(i,j,k,l)
----a 2 3 4
----b 2 3 4
字典拷贝 :
浅拷贝.copy()
深拷贝:copy.deepcopy
深拷贝,浅拷贝 和普通复制的区别:
普通赋值:完全拷贝原地址,完全跟随原字典改变
浅拷贝:父级地址不会被拷贝,字典里的子级地址会被拷贝 父级元素不会改变,子级元素会跟随原字典改变
如:字典1被浅拷贝到字典2时,改变字典1内本身值时,字典2的值不会被改变,
如果字典1里有嵌套可变元素时(列表元组)改变字典1列表中的值时,字典2同样改变
深拷贝:完全复制了父级地址和子级地址,和原字典没有一点关系,都不会改变,完全是独立的。