最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python基礎(chǔ)教程之字典操作詳解

 更新時間:2014年03月25日 12:05:17   作者:  
這篇文章主要介紹了python中的字典操作詳解,需要的朋友可以參考下

字典
dictionary

1.鍵值對的集合(map)

2.字典是以大括號“{}”包圍的數(shù)據(jù)集合

3.字典是無序的,在字典中通過鍵來訪問成員。 可變的,可嵌套,可以原處修改擴展等,不產(chǎn)生新的字典

4.字典的鍵,可以是字符串(大小寫敏感),數(shù)字常量或元組(不可變類型),同一個字典的鍵可以混用類型。字典的鍵必須是可哈希的

元組作為鍵的條件是,元組內(nèi)的值都是不可變類型

復(fù)制代碼 代碼如下:

a = (1,2)  #可以作為鍵
b = (1,2,[3,4])  #不可以

5.字典的值可以是任意類型,可以嵌套,可以自由修改

聲明
創(chuàng)建字典的幾種方式:

1.基本

復(fù)制代碼 代碼如下:

d = {} #空字典
d = {'name':'tom', 'age':22}
#等價
d = {}
d['name'] = 'tom'
d['age'] = 22

2.dict

復(fù)制代碼 代碼如下:

d = dict() #空
d = dict(name='tom', age=22)  

d = dict([('name','tom'), ('age',22)])
#等價
keys = ['name','age']
values = ['tom', 22]
d = dict(zip(keys,values))

3.fromkeys

不指定default_value的話,默認None

復(fù)制代碼 代碼如下:

>>> dict.fromkeys(['name','age'],'default_value')
{'age': 'default_value', 'name': 'default_value'}

基本操作

0.獲取幫助

復(fù)制代碼 代碼如下:

help(dict)

1.判定鍵是否存在于字典中
復(fù)制代碼 代碼如下:

if k in d:   #k not in
    dosomething()

2.讀取

復(fù)制代碼 代碼如下:

d = {'a':1, 'b':2}
print d['a']  #得到1,但是若鍵不存在,將引發(fā)異常KeyError。慎用,建議不使用

print d.get('c', 3) #得到3,get方法,若是鍵不存在,返回第二個參數(shù)default_value.若是沒有設(shè)default_value返回None
處理missing-key錯誤三種方式,根據(jù)具體需要

復(fù)制代碼 代碼如下:

if k in d:
    print d[k]

try:
    print d[k]
except KeyError:
    dosomething()

print d.get(k, default)
#等價 d[k] if k in d else default

3.遍歷

方式1:

復(fù)制代碼 代碼如下:

for key in d:
    print key, d[key]
#等價 for key in d.keys()

方式2:

復(fù)制代碼 代碼如下:

for key,value in d.items():
    print key, value

4.修改方式1:某個鍵值對

復(fù)制代碼 代碼如下:

d['key'] = 'newvalue'

方式2:批量添加或更新

復(fù)制代碼 代碼如下:

#另一個字典
d.update({'key':'newvalue'})  #這里支持一整組值

#元組列表
d.update( [ ('a',1), ('b',2) ] ) #每個元組兩個元素,(key,value)

#**key
d.update(c=3, e=4)

5.刪除

復(fù)制代碼 代碼如下:

del d['key']
value = d.pop('key') #刪除并返回值
d.clear() #清空
6.其他:

len(d)   #長度
d.keys()  #key列表
d.values()  #value列表
d.items()   #(key, value) 列表
c = d.copy()   #淺拷貝
#返回迭代器,節(jié)省內(nèi)存
d.iterkeys()
d.itervalues()
d.iteritems()
d.setdefault('name', 'ken') #若原來沒有,設(shè)置,否則原值不變

其他
1.字典排序按照key排序

復(fù)制代碼 代碼如下:

keys = d.keys()
keys.sort()
for key in keys:
    print d.get(key)

按照value進行排序

復(fù)制代碼 代碼如下:

sorted(d.items(), lambda x,y: cmp(x[1],y[1]))

另外:
復(fù)制代碼 代碼如下:

#假設(shè)d為字典
sorted(d)  #返回同 sorted(d.keys()),返回的是key排序

2.自定義對象作為key

必須:

復(fù)制代碼 代碼如下:

def __hash__(self):
    pass
def __eq__(self, other):
    pass

3.字典拷貝淺拷貝:

復(fù)制代碼 代碼如下:

c = d.copy() #

深拷貝必須用copy模塊
復(fù)制代碼 代碼如下:

form copy import deepcopy
c = deepcopy(d)

4.一種使用場景假設(shè)有一個很大的列表l,假設(shè)10w條記錄

有一個小列表b,要判斷b中元素是否在l中

如果:

復(fù)制代碼 代碼如下:

for i in b:
    if i in l:
        dosomething()

你會發(fā)現(xiàn)非常非常慢...因為第二個in語句,會遍歷10w條….

改進:

復(fù)制代碼 代碼如下:

d = dict.fromkeys(l)
for i in b:
    if i in d:
        dosomething()
#空間換時間,O(n) -> O(1)

相關(guān)文章

  • Python在Word中進行圖片添加、替換和刪除操作

    Python在Word中進行圖片添加、替換和刪除操作

    通過Python編程實現(xiàn)Word文檔中圖片的動態(tài)管理,可精準實現(xiàn)圖片的插入定位、條件化替換及冗余元素刪除,下面就跟隨小編來看看具體實現(xiàn)代碼吧
    2025-03-03
  • 簡單談?wù)凱ython中的幾種常見的數(shù)據(jù)類型

    簡單談?wù)凱ython中的幾種常見的數(shù)據(jù)類型

    Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。
    2017-02-02
  • python如何寫入dbf文件內(nèi)容及創(chuàng)建dbf文件

    python如何寫入dbf文件內(nèi)容及創(chuàng)建dbf文件

    這篇文章主要介紹了python如何寫入dbf文件內(nèi)容及創(chuàng)建dbf文件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python 調(diào)用釘釘機器人的方法

    python 調(diào)用釘釘機器人的方法

    今天小編就為大家分享一篇python 調(diào)用釘釘機器人的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 使用Python的turtle模塊畫圖的方法

    使用Python的turtle模塊畫圖的方法

    這篇文章主要介紹了使用Python的turtle模塊畫圖的方法,涉及turtle簡介,運動命令,畫筆控制命令的分享,以及具體操作的步驟,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python中ThreadPoolExecutor線程池和ProcessPoolExecutor進程池

    python中ThreadPoolExecutor線程池和ProcessPoolExecutor進程池

    這篇文章主要介紹了python中ThreadPoolExecutor線程池和ProcessPoolExecutor進程池,文章圍繞主題相關(guān)資料展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解

    pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解

    今天小編就為大家分享一篇pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python協(xié)程之動態(tài)添加任務(wù)的方法

    python協(xié)程之動態(tài)添加任務(wù)的方法

    今天小編就為大家分享一篇python協(xié)程之動態(tài)添加任務(wù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • pycharm通過ssh遠程連接服務(wù)器并運行代碼詳細圖文

    pycharm通過ssh遠程連接服務(wù)器并運行代碼詳細圖文

    在運行項目的過程中,由于自己電腦GPU不夠,通常需要將項目放到服務(wù)器上運行,這時就會遇到如何將pycharm和服務(wù)器進行連接,下面這篇文章主要給大家介紹了關(guān)于pycharm通過ssh遠程連接服務(wù)器并運行代碼的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python try except finally資源回收的實現(xiàn)

    Python try except finally資源回收的實現(xiàn)

    這篇文章主要介紹了Python try except finally資源回收的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論

沧源| 葵青区| 泗洪县| 黎川县| 铜山县| 达州市| 江北区| 安达市| 景东| 诸暨市| 凌云县| 辽中县| 崇义县| 宜黄县| 康保县| 张北县| 太白县| 祁阳县| 甘孜县| 莎车县| 宜宾市| 顺平县| 台安县| 兴化市| 丰顺县| 韶关市| 鄱阳县| 麟游县| 澄迈县| 临泽县| 肥东县| 九寨沟县| 庄浪县| 龙门县| 始兴县| 逊克县| 镇安县| 宜君县| 射洪县| 措美县| 扶风县|