python之dict操作

        字典結構作爲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)對字典進行排序)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章