字典操作
# 字典是一种key-value是数据类型,通过关键字找对应的值
info = {
'stu1101':"TengLan Wu",
'stu1102':"LongZe Luola",
'stu1103':"XiaoZe Maliya"
}
# 字典的特性:
# 是无序的
# key必须是唯一的
# 增加:
info["stu1104"] = "大地昌龙"
print(info)
# 显示:{'stu1101': 'TengLan Wu', 'sut1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1104': '大地昌龙'}
# 修改:
info["stu1101"] = "苍茫大地"
print(info)
# 显示:{'stu1101': '苍茫大地', 'sut1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1104': '大地昌龙'}
# 删除:
info.pop("stu1102") # 标准删除方式
print(info)
# 显示:{'stu1101': '苍茫大地', 'stu1103': 'XiaoZe Maliya', 'stu1104': '大地昌龙'}
del info['stu1103'] # 方法二
print(info)
# 显示:{'stu1101': '苍茫大地', 'stu1104': '大地昌龙'}
info.popitem() # 随机删除,结果不确定
print(info)
# 显示:{'stu1101': '苍茫大地'}
# 查找:
print("stu1101" in info) # 标准用法
# 显示:True
print(info.get("stu1101")) # 获取
# 显示:苍茫大地
print(info['stu1101']) # 获取
# 显示:苍茫大地
# .get方式,如果key不存在,不会报错,只会返回NONE;而直接用info["key"]的方式就会报错
# 多级字典嵌套及操作:
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
print(av_catalog["大陆"]["1024"])
# 显示:['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
# values:
print(info.values()) # 字典的值
# 显示:dict_values(['苍茫大地'])
# key:
print(info.keys()) # 字典的关键字
# 显示:dict_keys(['stu1101'])
# setdefault
print(info.setdefault("stu1106", "Alex")) # 如果键在字典中,返回这个键所对应的值。
# 如果键不在字典中,向字典 中插入这个键,并且以'Alex'为这个键的值,并返回'Alex'。如果没有值的默认值为None
# 显示:Alex
print(info.setdefault("stu1101", "Alex"))
# 显示:苍茫大地
# update:
print(info)
b = {1: 2, 3: 4, "stu1102": '小萝莉'}
info.update(b) # 将字典b的键值对添加到字典info中
print(info)
# 显示:{'stu1101': '苍茫大地', 'stu1106': 'Alex', 1: 2, 3: 4, 'stu1102': '小萝莉'}
# items
print(info.items()) # 以列表返回可遍历的(键, 值) 元组数组
# 显示:dict_items([('stu1101', '苍茫大地'), ('stu1106', 'Alex'), (1, 2), (3, 4), ('stu1102', '小萝莉')])
print(dict.fromkeys([1, 2, 3], 'testd')) # 通过一个列表生成默认dict。有缺陷尽量不用这个
# 显示:{1: 'testd', 2: 'testd', 3: 'testd'}
# dict循环
# 方法1
for key in info:
print(key,info[key])
# 方法2
for k, v in info.items(): # 先把字典转换成列表,尽量不用这方式
print(k, v)