序号 | 函数及描述 |
---|---|
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
dict.items() | 把字典转换成二级对等容器,以列表格式返回。 |
dict.keys() | 返回一个由字典的键组成的伪列表对象 |
dict.values() | 返回一个由字典的值组成的伪列表对象 |
dict.setdefault(key, None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
dict.popitem() | 返回并删除字典中的最后一对键和值。 |
字典的基本操作:
# 空字典
data1 = {}
print(data1, type(data1)) # {} <class 'dict'>
# 有成员的字典
data2 = {"name": "小名", "age": 18}
print(data2, type(data2)) # {'name': '小名', 'age': 18} <class 'dict'>
# 获取字典成员的值
data = {"name": "李可", "age": 18}
print(data["name"]) # 李可
# 新增/修改一个成员
data = {"age": 12}
data["name"] = "小红"
print(data) # {'age': 12, 'name': '小红'}
data["age"] = 18
print(data) # {'age': 18, 'name': '小红'}
# 删除一个成员
data = {'age': 18, 'name': '小红'}
del data["age"]
print(data) # {'name': '小红'}
# 统计字典成员数量
data = {'age': 18, 'name': '小红'}
print(len(data)) # 2
字典提供的常用操作:
"""
字典.clear() 清空字典
del 字典 删除字典
"""
data = {'age': 18, 'name': '小红'}
data.clear()
print(data) # {} 空字典
data = {'age': 18, 'name': '小红'}
del data
print(data) # NameError: name 'data' is not defined
"""字典.fromkeys(序列) 根据已有序列创建一个字典"""
list_data = ["a", "b"]
data = {}
new_data = data.fromkeys(list_data, "A")
print(new_data) # {'a': 'A', 'b': 'A'}
"""
根据指定键获取字典中的成员的值,如果键不存在,则返回None,也可以指定默认值
字典.get("键", default=None)
字典[键]
"""
# 使用中括号获取指定键对应的值,如果键不存在,会报错
data = {'age': 18, 'name': '小红'}
print(data["price"]) # KeyError: 'price'
# 使用get不会报错
data = {'age': 18, 'name': '小红'}
print(data.get("age")) # 18
print(data.get("money")) # None,不存在的键则返回None
print(data.get("money", 0.0)) # 0.0,当键不存在时,可以设置默认值
"""二级对等容器转换字典"""
data = [("name", "xiaoming"), ("age", 17), ]
dict_data = dict(data)
print(dict_data) # {'name': 'xiaoming', 'age': 17}
"""字典转二级对等容器"""
data = {'name': 'xiaoming', 'age': 17}
print(data.items()) # dict_items([('name', 'xiaoming'), ('age', 17)])
print(list(data.items())) # [('name', 'xiaoming'), ('age', 17)]
# items最大的作用就是让for循环遍历字典,得到每一个成员的键值对
data = {'name': 'xiaoming', 'age': 17}
for key, value in data.items():
print(f"key={key}, value={value}")
# key=name, value=xiaoming
# key=age, value=17
"""如果在循环中,希望对于列表/元组/字符串,也想要类似字典这样,不仅要返回值,还要返回下标,可以使用"""
data = ["A", "B", "C", "D", "E"]
# data = ("A", "B", "C", "D", "E")
# data = "ABCDECV"
for index, item in enumerate(data): # enumerate可以让循环提取列表/元组/字符串的下标和值
print(f"index={index}, item={item}")
# index=0, item=A
# index=1, item=B
# index=2, item=C
# index=3, item=D
# index=4, item=E
"""
字典.keys() # 返回一个由字典的键组成的伪列表对象
字典.values() # 返回一个由字典的值组成的伪列表对象
"""
data = {'name': 'xiaoming', 'age': 17}
print(data.keys()) # dict_keys(['name', 'age'])
print(data.values()) # dict_values(['xiaoming', 17])
"""
字典.setdefault(key, defaultValue) # 设置键的默认值,如果键存在,则没有任何效果,只有键不存在时,则把当前键和默认值作为键值对添加到字典中
字典1.update(字典2) # 更新键对应的只,常用于合并字典
"""
data = {'name': 'xiaoming', 'age': 17}
data.setdefault("money", 0.0) # 第二个参数选项则是当键不存在时设置的默认值,如果不设置,则默认为None
print(data) # {'name': 'xiaoming', 'age': 17, 'money': 0.0}
local_data = {"PASSWORD": "123", "URL": "127.0.0.1", "ENV": "dev"}
data = {"SYSTEM": "Linux", "PASSWORD": "fkdkjgm343m24324m2390fdvsf", "URL": "www.fuguang.com"}
# 不存在的键会新增,存在的键以传递进去的字典为主
data.update(local_data)
print(data) # {'SYSTEM': 'Linux', 'PASSWORD': '123', 'URL': '127.0.0.1', 'ENV': 'dev'}
"""
字典.pop(键) 删除指定键对应的成员
字典.popitem() 删除字典中最后一个成员
"""
data = {'name': 'xiaoming', 'age': 17}
name = data.pop("name")
print(data) # {'age': 17}
print(name) # xiaoming 被删除的键对应的值
data = {'name': 'xiaoming', 'age': 17}
data.popitem()
print(data) # {'name': 'xiaoming'}