>>a_list=[[1,2,3],[4,5],[6,7]]>>>a_list[1][1]5>>>a_dict={1:{"name":"qiwsir"},2:"python","email":"qiwsir@gmail.com"}>>>a_dict{1:{'name':'qiwsir'},2:'p" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

跟老齊學(xué)Python之dict()的操作方法

系統(tǒng) 1765 0

dict的很多方法跟list有類似的地方,下面一一道來(lái),并且會(huì)跟list做一個(gè)對(duì)比

嵌套

嵌套在list中也存在,就是元素是list,在dict中,也有類似的樣式:

            
>>> a_list = [[1,2,3],[4,5],[6,7]]
>>> a_list[1][1]
5
>>> a_dict = {1:{"name":"qiwsir"},2:"python","email":"qiwsir@gmail.com"}
>>> a_dict
{1: {'name': 'qiwsir'}, 2: 'python', 'email': 'qiwsir@gmail.com'}
>>> a_dict[1]['name']  #一個(gè)嵌套的dict訪問(wèn)其值的方法:一層一層地寫出鍵
'qiwsir'

          

獲取鍵、值

在上一講中,已經(jīng)知道可以通過(guò)dict的鍵得到其值。例上面的例子。

還有別的方法得到鍵值嗎?有!python一般不是只有一個(gè)方法實(shí)現(xiàn)某個(gè)操作的。

            
>>> website = {1:"google","second":"baidu",3:"facebook","twitter":4}

>>>#用d.keys()的方法得到dict的所有鍵,結(jié)果是list
>>> website.keys()
[1, 'second', 3, 'twitter']

>>>#用d.values()的方法得到dict的所有值,如果里面沒(méi)有嵌套別的dict,結(jié)果是list
>>> website.values()
['google', 'baidu', 'facebook', 4]

>>>#用items()的方法得到了一組一組的鍵值對(duì),
>>>#結(jié)果是list,只不過(guò)list里面的元素是元組
>>> website.items()
[(1, 'google'), ('second', 'baidu'), (3, 'facebook'), ('twitter', 4)]


          

從上面的結(jié)果中,我們就可以看出,還可以用for語(yǔ)句循環(huán)得到相應(yīng)內(nèi)容。例如:

            
>>> for key in website.keys():
...   print key,type(key)
... 
1 
            
              
second 
              
                
3 
                
                  
twitter 
                  
                    

>>>#下面的方法和上面的方法是一樣的
>>> for key in website:
...   print key,type(key)
... 
1 
                    
                      
second 
                      
                        
3 
                        
                          
twitter 
                          
                          
                        
                      
                    
                  
                
              
            
          

以下兩種方法等效:

            
>>> for value in website.values():
...   print value
... 
google
baidu
facebook
4

>>> for key in website:
...   print website[key]
... 
google
baidu
facebook
4


          

下面的方法又是等效的:

            
>>> for k,v in website.items():
...   print str(k)+":"+str(v)
... 
1:google
second:baidu
3:facebook
twitter:4

>>> for k in website:
...   print str(k)+":"+str(website[k])
... 
1:google
second:baidu
3:facebook
twitter:4


          

下面的方法也能得到鍵值,不過(guò)似乎要多敲鍵盤

            
>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}
>>> website.get(1)   
'google'
>>> website.get("second")
'baidu'

          

其它幾種常用方法

dict中的方法在這里不做過(guò)多的介紹,因?yàn)榍懊嬉还?jié)中已經(jīng)列出來(lái)類,看官如果有興趣可以一一嘗試。下面列出幾種常用的

            
>>> len(website)
4
>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

>>> new_web = website.copy()  #拷貝一份,這個(gè)拷貝也叫做淺拷貝,對(duì)應(yīng)著還有深拷貝。
>>> new_web           #兩者區(qū)別,可以google一下。
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}


          

刪除鍵值對(duì)的方法有兩個(gè),但是兩者有一點(diǎn)區(qū)別

            
>>>#d.pop(key),根據(jù)key刪除相應(yīng)的鍵值對(duì),并返回該值
>>> new_web.pop('second')
'baidu'

>>> del new_web[3]   #沒(méi)有返回值,如果刪除鍵不存在,返回錯(cuò)誤
>>> new_web
{1: 'google', 'twitter': 4}
>>> del new_web[9]
Traceback (most recent call last):
File "
            
              ", line 1, in 
              
                
KeyError: 9


              
            
          

用d.update(d2)可以把d2合并到d中。

            
>>> cnweb
{'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business'}
>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

>>> website.update(cnweb)  #把cnweb合并到website內(nèi)
>>> website         #變化了
{'qq': 'first in cn', 1: 'google', 'second': 'baidu', 3: 'facebook', 'python': 'qiwsir.github.io', 'twitter': 4, 'alibaba': 'Business'}
>>> cnweb          #not changed
{'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business'}


          

在本講最后,要提醒看官,在python3中,dict有不少變化,比如能夠進(jìn)行字典解析,就類似列表解析那樣,這可是非常有意思的東西哦。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 闻喜县| 扬中市| 米泉市| 吉木乃县| 大埔区| 涟源市| 旌德县| 泗洪县| 南陵县| 阿巴嘎旗| 张家界市| 吉安市| 泰顺县| 巨鹿县| 长武县| 阳谷县| 兰西县| 革吉县| 咸丰县| 焉耆| 鸡东县| 玛沁县| 资源县| 景谷| 泸溪县| 永修县| 古浪县| 巴林右旗| 儋州市| 洛扎县| 离岛区| 普定县| 西青区| 密山市| 克拉玛依市| 肇东市| 青海省| 宜良县| 临桂县| 鄂州市| 鄱阳县|