python中关于字典的总结

162 阅读1分钟

字典:以键值对的形式进行存储数据

字典的表示方式: {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)