字典的常规使用方式整理!
字典初始化
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
# 方式1:空字典
my_dict1: dict = {}
# 方式2
my_dict2: dict = {
"name": "zhangSan",
"age": "23",
}
# 方式3
my_dict3: dict = dict(name="zhangSan", age=23)
# 方式4
my_dict4: dict = dict({"name": "zhangSan"})
# 方式5
my_dict5: dict = dict([("name", "zhangSan"), ("age", 22)])
# 方式6
my_dict6: dict = {}.fromkeys(["name", "address"], None) # {'name': None, 'address': None}
my_dict7: dict = {}.fromkeys(["name", "address"], ["zhangSan", "xx"])
# {'name': ['zhangSan', 'xx'], 'address': ['zhangSan', 'xx']}
if __name__ == '__main__':
test()
type返回对象类型
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
print(type(my_dict)) # <class 'dict'>
print(my_dict) # {'name': 'zhangSan', 'age': '23'}
if __name__ == '__main__':
test()
查询
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
# 查询
my_name: str = my_dict["name"] # 不存在就报错
print(my_name) # zhangSan
# 查询 get,可设置默认值
print(type(my_dict.get('name'))) # <class 'str'>
print(my_dict.get('name')) # 不存在就返回None
print(my_dict.get('name123', "my_default")) # 不存在就返回默认值
# 获取所有key
my_dict_keys = my_dict.keys()
print(type(my_dict_keys)) # <class 'dict_keys'>
print(my_dict_keys) # dict_keys(['name', 'age'])
# 获取所有values
my_dict_values = my_dict.values()
print(type(my_dict_values)) # <class 'dict_values'>
print(my_dict_values) # dict_values(['zhangSan', '23'])
# for循环获取 key - value
for k in my_dict:
print(type(k), k) # <class 'str'> name
print(type(my_dict[k]), my_dict[k]) # <class 'str'> zhangSan
# for循环获取 key - value
for k in my_dict.keys():
print(type(k), k, type(my_dict[k]), my_dict[k]) # <class 'str'> name <class 'str'> zhangSan
# 列表list的方式返回key-value
print(my_dict.items()) # dict_items([('name', 'zhangSan'), ('age', '23')])
print(type(my_dict.items())) # <class 'dict_items'>
for item in my_dict.items():
print(item) # ('name', 'zhangSan')
print(type(item)) # <class 'tuple'>
for k, v in my_dict.items():
print(type(k), k, type(v), v) # <class 'str'> name <class 'str'> zhangSan
# 是否包含 某key
if "name" in my_dict:
print(True)
else:
print(False)
# 是否包含 某value
if "zhangSan" in my_dict.values():
print(True)
else:
print(False)
if __name__ == '__main__':
test()
添加
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
print(my_dict['name']) # zhangSan
# 添加
my_dict2: dict = {
"content": "hi"
}
my_dict.update(my_dict2)
print(my_dict) # {'name': 'zhangSan', 'age': '23', 'content': 'hi'}
# setdefault
my_dict.setdefault("sex", "man")
print(my_dict) # {'name': 'zhangSan', 'age': '23', 'content': 'hi', 'sex': 'man'}
# 添加
my_dict["address"] = "xxxx"
print(my_dict) # {'name': 'zhangSan', 'age': '23', 'content': 'hi', 'sex': 'man', 'address': 'xxxx'}
if __name__ == '__main__':
test()
修改
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
print(my_dict['name']) # zhangSan
# 修改
my_dict["name"] = "liSi"
my_name: str = my_dict["name"]
print(my_name) # liSi
# 修改 合并
my_dict2: dict = {
"name": "wangWu",
"content": "hi"
}
my_dict.update(my_dict2)
print(my_dict) # {'name': 'wangWu', 'age': '23', 'content': 'hi'}
if __name__ == '__main__':
test()
删除
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
print(my_dict['name']) # zhangSan
# 删除某个key,并返回对应的值
res = my_dict.pop("age")
print(type(res), res) # <class 'str'> 23
print(my_dict) # {'name': 'zhangSan'}
# 删除某个key,如果没有,就返回默认值
res = my_dict.pop("address", "noKey")
print(type(res), res) # <class 'str'> noKey
# 清空
my_dict.clear()
print(my_dict) # {}
if __name__ == '__main__':
test()
字典长度
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def test() -> None:
my_dict: dict = {
"name": "zhangSan",
"age": "23",
}
print(len(my_dict)) # 2
if __name__ == '__main__':
test()