字典和json类似,也是采用键值对(key-values)的方式进行存储数据,在python中,用作字典的key必须是可哈希的、不可变的数据类型,比如数字、元组和字符串。字典的关键字为dict
,用{}
表示,字典可以存储大量数据,相对列表速度要快一些,字典是可变的、无序的,不支持索引。
增
dic = {"name":"xiaowang","age":18,"job":"it"}
dic.setdefault("k","v") #如果k存在不添加,不存在添加
print(dic)
#{'name': 'xiaowang', 'age': 18, 'job': 'it', 'k': 'v'}
dic["kk"] = "vv" #如果kk存在则会对值进行覆盖,不存在会追加进去
print(dic)
#{'name': 'xiaowang', 'age': 18, 'job': 'it', 'kk': 'vv'}
删
dic = {"name":"xiaowang","age":18,"job":"it"}
dic.pop("name") #根据填入key删除对应的键值对,填入不存在的key会报错
print(dic)
#{'age': 18, 'job': 'it'}
print(dic.popitem()) #删除随机的元素,返回的是被删除的键值对
print(dic)
#('job', 'it')
#{'name': 'xiaowang', 'age': 18}
del dic["name"] #根据填入的key来删除对应的键值对,填入不存在的key会报错
print(dic)
#{'age': 18, 'job': 'it'}
dic.clear() #清空字典
del dic #删除整个字典,报错
改
dic["key"] = "new_values" #key存在则修改值,不存在则追加键值对
dic1 = {"name":"beijing"}
dic.update(dic1) #update括号中优先级较高
print(dic)
#{'name': 'beijing', 'age': 18, 'job': 'it'}
查
print(dic["name"]) #通过key查找对应的values,如果key不存在则报错
#xiaowang
print(dic.get("age")) #通过key查找对应的values,如果key不存在返回none
#18
for i in dic: #for循环遍历字典返回的是key,等同于
#for i in dic.keys():
#for i in dic.values(): 返回字典中的值
print(i)
#name
#age
#job
for i in dic.items(): #以元祖的方式返回键值对
print(i)
#('name', 'xiaowang')
#('age', 18)
#('job', 'it')