python 字典
字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分割的,以大括号{ }包围的序列
由于字典无序,所以我们定义字典和字典生成之后的元素的顺序是不同的;
python字典的特点:
因为字典是无序的,所以字典没有索引值;
因为字典没有索引值,所以字典以键取值,字典的键唯一且不可修改(字典的键相当于列表的索引)
定义字典
(1)定义一个字典
eg:infor = {“name”:“suner”,”age”:25}
(2)添加键值对
eg:infor[“addr”] = “无锡”
(3)Key不存在修改字典相当于添加
eg:infor[“school”] = “XX大学”
(4)key存在修改字典
eg:infor[“school”] = “XXX大学”
(5)key存在删除字典
eg:del infor[“school”]
(6)key不存在删除字典会报异常
(7)字典查询
eg:infor[“name”] # 查询没有会报错
eg:infor.get(“name”) # 用get查询没有会返回None,不会报错
python字典常见操作
字典的取值
① keys:返回一个包含字典所有key的列表
② values:返回一个包含字典所有vaule的列表
③ get:以键取值,如果指定键不存在,默认返回None,可以指定返回内容
④setdefault:设置默认,如果键存在,返回值,如果键不存在,创造键,值默认为None,值也可以自定义
(setdefault(key,default=None))
user_info = {"name":"suner","age":"20","addr":"wuxi"}
print("键存在:", user_info.setdefault("name")) # 执行结果:suner
print("键不存在默认返回None:", user_info.setdefault("school")) # 执行结果:None
print(user_info) # 执行结果:{'name': 'suner', 'age': '20', 'addr': 'wuxi', 'school': None}
print("键不存在指定值:", user_info.setdefault("sex","male")) # 执行结果:male
print(user_info) # 执行结果:{'name': 'suner', 'age': '20', 'addr': 'wuxi', 'school': None, 'sex': 'male'}
⑤ update:以字典格式更新指定键的内容,如果键不存在,创建键和值
⑥ items:返回字典键值呈元组形式的格式
⑦len:测量字典,键值对的个数(整体)
user_info = {"name":"suner","age":"20","addr":"wuxi"}
for key in user_info.keys():
print("key:",key) # 执行结果:name age addr
for value in user_info.values():
print("value:",value) # 执行结果:suner 20 wuxi
print("key存在取值:",user_info.get("name")) # 执行结果:suner
print("key不存在取值:",user_info.get("school")) # 执行结果:None
user_info.update({"age":25}) # 相当于user_info["age"] = 25
print("key存在更新:",user_info) # 执行结果:{'name': 'suner', 'age': 25, 'addr': 'wuxi'}
user_info.update({"school":"xx大学"}) # 相当于user_info["school"] = "xx大学"
print("key不存在创建:",user_info) # 执行结果:{'name': 'suner', 'age': 25, 'addr': 'wuxi', 'school': 'xx大学'}
print("key存在取值:",user_info.get("school")) # 执行结果:xx大学
for k,v in user_info.items():
print("键是:{},值是:{}".format(k,v))
print("字典长度:",len(user_info)) # 执行结果:4
字典的删除
① pop:弹出,返回并删除指定键对应的值
② popitem:随机弹出一个键值元组,这里随机的原因是因为字典无序
③ clear:清空字典
user_info = {"name":"suner","age":"20","addr":"wuxi","school":"xx大学"}
user_info.pop("addr")
print("删除后的字典显示:",user_info) # 执行结果:{'name': 'suner', 'age': '20', 'school': 'xx大学'}
user_info.popitem()
print("随机删除后的字典显示:",user_info) # 执行结果:{'name': 'suner', 'age': '20'}
字典的判断
① in:判断指定的键是否在字典当中
user_info = {"name":"suner","age":"20","addr":"wuxi","school":"xx大学"}
true_result = "name" in user_info
false_result = "weight" in user_info
print("结果是:",true_result) # 执行结果:True
print("结果是:",false_result) # 执行结果:False
字典的遍历
① 通过for ...in ...:通过for ... in ...:的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构