字典:以键值对的形式进行存储数据
字典的表示方式: {key:value, key2:value}, key必须是可hash的类型,value可以是任意数据类型
dic = {"James": "詹姆斯", "Durant": "杜兰特", "Curry": "库里"}
val = dic["James"]
print(val)
字典的相关操作
# 字典的新增,修改
dic = dict()
dic['James'] = "詹姆斯"
print(dic)
# 重复key会进行覆盖, 相当于修改操作
dic['James'] = "杜兰特"
print(dic)
dic.setdefault("Curry", "库里") #实际为设置默认值,如果之前已有Curry这个key了,再塞入将不起作用dic.setdefault("Curry", "库里")dic.setdefault("Curry", "库里")dic.setdefault("Curry", "利拉德")
dic.setdefault("James", "皮尔斯")
# 后面两个操作将不起作用
# 字典的删除
dic.pop("James")
print(dic)
#字典的查询
print(dic['James']) # 如果key不存在程序会报错
print(dic.get('James')) # r如果key不存在,程序返回None
字典的循环和嵌套
# for循环直接拿到key
dic = {"James": "詹姆斯", "Durant": "杜兰特", "Curry": "库里"}
fo key in dic:
print(key, dic[key])
# 把所有的key全部保存在一个列表中
print(list(dic.keys()))
# 把所有的value都放在一个列表中
print(list(dic.values()))
# 直接拿到字典中的key和value
print(dic.items())
for item in dic.items():
key = item[0]
value = item[1]
print(key, value)
# 解构的含义,元组和列表都可以实现此操作,如下
a, b=(1, 2)
# 所以循环取值可以如下书写
for item in dic.items():
key, value = item
# 进一步简化
for key, value in dic.items():
print(key, value)
#############################################
# 嵌套
James = {
"name": "詹姆斯",
"team": "湖人",
"temmate":{
"Davis": "戴维斯",
"Westbrook": "威斯布鲁克"
}
}
print(James['temmate']['Davis'])
字典的循环删除
# 循环删除
dic = {"James": "詹姆斯", "Durant": "杜兰特", "Curry": "库里"}
temp = [] #存放即将要删除的key
for key in dic:
if key.startswith("詹"):
temp.append(key)
for t in temp:
dic.pop(t)
print(dic)