方法名 |
描述 |
dict.copy |
# 返回字典的浅拷贝
dicts_1 = {"student_1":{"name":"luxp", "sex":"男"}, "student_2":{"name":"lxp", "sex":"女"}}
dicts_2 = dicts_1.copy()
# 所谓浅拷贝拷贝的是对象地址引用,而不是直接拷贝值
# 如果改变dicts_1的元素的值,dicts_2也会改变
dicts_1['student_1']['name']="鲁西皮"
print(dicts_2)
# 输出, dicts_2 跟着一起发生变化
#{'student_1': {'name': '鲁西皮', 'sex': '男'}, 'student_2': {'name': 'lxp', 'sex': '女'}}
|
dict.get() |
通过键名获取键值,与dict[键名]方式不同,dict[键名]方式如果键名不存在,会报错,get可以通过提供一个默认值来避免报错
# dict.get(键名,默认值)- 与dict[key]一样,但是当key不存在时,返回默认值
dicts = {'name': 'luxp', 'sex': '男'}
# age键名不存在,返回默认值0
age = dicts.get("age", 0)
print(age)
|
dict.items() |
# dict.items - 获得字典的条目视图对象
dicts = {'name': 'luxp', 'sex': '男'}
d = dicts.items()
print(d)
# dict_items([('name', 'luxp'), ('sex', '男')])
# 利用items遍历字典
for item in dicts.items():
print(item)
|
dict.keys() |
# 遍历字典的键名
dicts = {'name': 'luxp', 'sex': '男'}
d = dicts.keys()
print(d)
# 利用key遍历字典
for key in dicts.keys():
print(dicts[key])
|
dict.values() |
# 遍历字典的键值
dicts = {'name': 'luxp', 'sex': '男'}
d = dicts.values()
print(d)
# 利用key遍历字典
for value in dicts.values():
print(value)
|
dict.pop(k[,d]) |
# 从字典中弹出指定的键名项,如果k键名存在就将k项弹出,返回该项值,否则返回d
dicts = {'name': 'luxp', 'sex': '男'}
d = dicts.pop("name")
print(d)
# 输出 luxp
# 默认值d=18
d = dicts.pop("age", 18)
print(d)
# 输出 18
|
dict.popitem() |
从字典中弹出一项键值对
popitem不需要提供键名,要注意弹出的顺序:
- 3.7版本之前是任意弹出,顺序不一定
- 3.7版本后,按照先进后出顺序弹出
# 从字典中弹出一项键值对
dicts = {'name': 'luxp', 'sex': '男'}
while dicts:
print(dicts.popitem())
|
dict.setdefault(key[, default]) |
# 键存在时返回当值或者键不存在时设置一个新的键值对
dicts = {'name': 'luxp', 'sex': '男'}
d = dicts.setdefault('name', "Luxp")
print(d)
# 输出 luxp
d = dicts.setdefault('age', "18")
print(d)
# 输出 18
print(dicts)
# 输出 {'name':'luxp', 'sex': '男', 'age': '18'}
|
dicts.update() |
# 根据另一组键值对更新
# dict.update(other_dicts)
# dict.update(key=val...)
dicts = {'name': 'luxp', 'sex': '男'}
dicts.update({"name":"Luxp", "sex":"女"})
print(dicts)
# 输出
# {'name': 'Luxp', 'sex': '女'}
# 使用关键字参数
dicts.update(name="Luxp", sex="女", age=18)
print(dicts)
# 输出
# {'name': 'Luxp', 'sex': '女', 'age': 18}
|
dict.clear() |
# 清除字典所有条目
dicts = {'name': 'Luxp', 'sex': '女', 'age': 18}
dicts.clear()
print(dicts)
# 输出
# {}
这里要注意的是dicts.clear()与dicts = {}虽然最后都是一个空字典,但是意义不一样,dicts.clear(),是对对象本身操作,并不会改变对象的id值,dicts={},改变了dicts的值
|
讨论区