请稍候,加载中....

字典类型方法

字典数据类型实例方法

方法名 描述
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的值

 

类方法fromkeys

fromkeys(iterable[, value])

创建一个新的字典,键名来自迭代器,如果没有提供value,使用None作为键值,否则使用value

lists = ["name", "sex","age"]
dicts = dict.fromkeys(lists)
# {'name': None, 'sex': None, 'age': None}

dicts = dict.fromkeys(lists, "--")
#  {'name': "--", 'sex': "--", 'age': "--"}

Python学习手册-