字典結構作爲python的基本數據結構之一,由鍵值對組成{key:value},其中key的值是唯一的,而value的值可以重複。在日常壘碼過程中用的比較頻繁,故在這裏做一個簡單的總結,
(1)增
創建字典的方式一般有兩種,
- info={"name":"zhangsan"}
- info=dict(name="zhangsan") ##注意此時的name不要加引號
當一個字典創建並初始化後想要再增加字段時,可以直接通過info["sex"]="man"來添加即可。如果想要一次批量添加還可以藉助update函數,具體使用如下
info=dict(name="zhangsan")
info.update("sex":"man","age":18,"score":100)
(2)刪
對於字典元素的剔除處理,一般有兩種方式,具體如下
info={"name"="zhangsan","sex"="man","age"=18}
###利用pop實現剔除
info.pop("age")
###利用python內置函數del
del info["sex"]
(3)改
這裏指的是對字典的value值進行修改,可以直接通過info["name"]="lisi"實現,至於key值的一般不能直接修改(因爲key是hash),間接修改的方式如下:
info={"name":"zhangsan","sex":"man","age":18}
info["height"]=info.pop("age")
(4)查
字典由鍵值對組成,想要實現對key值的遍歷可以利用字典的keys屬性,對value值的遍歷可以通過values的屬性,同時遍歷的話可以考慮items屬性,具體實例如下
info={"name":"zhangsan","sex":"man","age":18}
#對鍵值遍歷
for i in info.keys():
print(i)
#對valeus遍歷
for j in info.values():
print(j)
#對整個字典進行遍歷
for m,n in info.items():
st="key:{},value:{}".format(m,n)
print(st)
補:
常見的字典排序有按key值或value值排序兩種,藉助python內置的sorted函數,這裏做如下總結,
info={}
info[2] = 56
info[1] = 2
info[5] = 12
info[4] = 24
info[6] = 18
info[3] = 323
print(info)
###對key值進行排序
for i in sorted(info): ###默認是升序,若想變爲降序,將reverse屬性變爲True
print((i,info[i]), end =" ")
###對value值進行排序,其中key爲排列的依據
for i in sorted(info.items(), key = lambda k:(k[1], k[0])):
print(i)
###按照字典序進行排列
lis = [{ "name" : "Taobao", "age" : 100},
{ "name" : "Runoob", "age" : 7 },
{ "name" : "Google", "age" : 100 },
{ "name" : "Wiki" , "age" : 200 }]
# 通過 age 升序排序
print ("列表通過 age 升序排序: ")
print (sorted(lis, key = lambda i: i['age']) )
print ("\r")
# 先按 age 排序,再按 name 排序
print ("列表通過 age 和 name 排序: ")
print (sorted(lis, key = lambda i: (i['age'], i['name'])) )
print ("\r")
# 按 age 降序排序
print ("列表通過 age 降序排序: ")
print (sorted(lis, key = lambda i: i['age'],reverse=True) )
同樣的,由於字典是無序類型,沒有自帶的排序方法,但可以先轉化爲list,然後藉助列表的sort()方法來進行排序,
tmp={1:23,2:10,3:15}
t=list(tmp.items()) ##t爲[(1,23),(2,10),(3,15)]
print(t)
t.sort(key=lambda x:(x[1],x[0]),reverse=True)
print(dict(t)) ##輸出結果爲{1: 23, 3: 15, 2: 10}
參考鏈接:
https://blog.csdn.net/cxcxrs/article/details/82459800(在Python中,字典按值排序)
https://www.runoob.com/python3/python-sort-dictionaries-by-key-or-value.html(Python 按鍵(key)或值(value)對字典進行排序)