5.python字典操作

字典

知識點(diǎn):

  1. 字典是由鍵-值對組成的。
  2. 可以通過鍵找到與之對應(yīng)的值。
  3. 值可以是python中的任意可以創(chuàng)建的object。
  4. 通過‘:’冒號來連接鍵值對,通過‘,’逗號來間隔開不同的鍵值對。用大括號來包含所有的鍵值對。
  5. 字典里面的鍵值對沒有順序。

1. 通過鍵訪問值

輸入:

alien_0={'color': 'blue' , 'point': 5}
print("the alien_0's color is " + alien_0['color'])

輸出:

c:\py>dictionary
the alien_0's color is blue

2. 添加鍵值對

直接通過:? 字典名[鍵]=值 ? 來添加

輸入:

alien_0={'color': 'blue' , 'point': 5}
print(alien_0)

alien_0['x_position']=0     #字典名[鍵]=值
alien_0['y_position']=25
print(alien_0)

輸出:

c:\py>dictionary
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}

3. 從空字典開始

和上面添加鍵值對的方法一樣

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}

4. 改變字典中鍵值對的值

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

alien_0['color']='green'
alien_0['point']=2
print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}
{'color': 'green', 'point': 2}

5. 使用del語句刪除鍵值對

輸入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5
alien_0['x_position']=0
alien_0['y_position']=25

print(alien_0)

del alien_0['x_position']   #刪除鍵值對'x_position':0
del alien_0['y_position']   #刪除鍵值對'y_position':25

print(alien_0)

輸出:

c:\py>empty_dic
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}
{'color': 'blue', 'point': 5}

6. 循環(huán)查詢字典中的鍵值對

要使用for循環(huán),則必須要有一個列表, .items()方法返回一個元素為鍵值對的列表。

輸入:

alien_0={
    'color': 'blue', 
    'point': 5,
    'x_position': 0,
    'y_position': 25,#最后一個鍵值對也帶上逗號
    }

for key,value in alien_0.items():   #使用.items()方法
    print('\nkey: '+str(key))  #空一行
    print('value: '+str(value))

輸出:

c:\py>empty_dic

key: color
value: blue

key: point
value: 5

key: x_position
value: 0

key: y_position
value: 25

7. 循環(huán)查詢字典中的鍵

1. 使用.keys()方法

.keys()方法返回一個包含所有鍵的列表

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in alien_0.keys():  #使用.items()方法
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color
2. 在for循環(huán)中直接使用字典名

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in alien_0: #直接使用字典名
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color

使用.items()方法會讓代碼可讀性更高。

8. 循環(huán)查詢字典中的值

使用.values()方法

.values()方法返回一個包含所有鍵的列表

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for value in alien_0.values():  #使用.values()方法
    print('value: '+str(value))

輸出:

c:\py>empty_dic
value: 5
value: 25
value: 0
value: blue

9.按字母表順序輸出

由于字典中的鍵值對并沒有順序,所以無論是查看所有鍵或是查看所有值,都沒有固定的順序。

使用sorted()函數(shù)暫時改變列表順序。

輸入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一個鍵值對也帶上逗號
    }

for key in sorted(alien_0.keys()):  #使用.keys()方法
    print('key: '+str(key))

輸出:

c:\py>empty_dic
key: color
key: point
key: x_position
key: y_position

注意: sorted()函數(shù)是對字符進(jìn)行排序,而值往往不止字符型一種,所以常常用來對鍵排序。

10.消除重復(fù)的元素

使用set()函數(shù),生成一個沒有重復(fù)元素的列表。

下面例子的字典point和y_position鍵所對應(yīng)的值重復(fù)。

輸入:

alien_0={
    'point': 5,
    'y_position': 5,    #這兒和point鍵對應(yīng)的值重復(fù)
    'x_position': 0,
    'color': 'blue',    #最后一個鍵值對也帶上逗號
    }
    
print('no duplicate values: ')
for value in set(alien_0.values()):   #使用.values()方法
    print(str(value))

輸出:

c:\py>empty_dic
no duplicate values:
0
5
blue

11.嵌套

11.1 在列表中嵌套字典

輸入:

aliens=[]    #創(chuàng)建一個空列表

for alien_number in range(30):
    new_alien={'color': 'blue' , 'point': 5}
    aliens.append(new_alien)

for alien in aliens[:5]:    #展示前5個元素
    print (alien)
print('...')
#輸出列表中alien的總數(shù)量
print('total number of aliens : '+str(len(aliens)))

輸出:

c:\py>nest
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
...
total number of aliens : 30

11.2 在字典中嵌套列表

輸入:

favorite_languages={
    'jen' : ['python','ruby'],
    'sarah' : ['c'],
    'jimmy' : ['ruby','go'],
    }
for name,languages in favorite_languages.items():
    print('\n'+name.title()+"'s favorite language are ")
    for language in languages:
        print('\t'+language)

輸出:

c:\py>list_nest_dic

Jen's favorite language are
        python
        ruby

Sarah's favorite language are
        c

Jimmy's favorite language are
        ruby
        go

11.3 在字典中嵌套字典

輸入:

users={
    'aeinstein':{
    'first' : 'albert',
    'last' : 'einstein',
    'location' : 'princeton',
        },#注意,字典嵌套字典,鍵值對之間要有逗號
        
    'mcurie':{
    'first' : 'marie',
    'last' : 'curie',
    'location' : 'pairs',
        },#注意,字典嵌套字典,鍵值對之間要有逗號
    }   
        
for user_name,user_info in users.items():
    print('\nUsername: '+user_name)
    full_name=user_info['first'] + ' '+user_info['last']
    location=user_info['location']
    
    print('\tFull name: '+full_name.title())
    print('\tLocation: '+location.title())

輸出:

c:\py>dic_nest_dic

Username: aeinstein
        Full name: Albert Einstein
        Location: Princeton

Username: mcurie
        Full name: Marie Curie
        Location: Pairs
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 〇、前言 本文共108張圖,流量黨請慎重! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,579評論 17 410
  • 李煜魂殤宋使前,國破身虜盡凄然。 一朝夢斷對殘?jiān)?,三載思?xì)w蕩寒煙。 回轉(zhuǎn)樓臺非御帳,今夕酒醉是何年。 京師空掛封侯...
    庭上望月閱讀 315評論 2 28
  • 彌漫于空氣中的淡淡年韻,像一支笛吹響了我對兒時年味的回憶,不知從何時起那一縷深埋于心中的幽香,便隨著這笛音在心中飄...
    予默涵閱讀 282評論 0 0
  • 前兩天在家里看電視,看到了《快樂大本營》第1000期的特別節(jié)目。 這檔節(jié)目已經(jīng)播放了20多年了,他們的主持人“快樂...
    Justabookworm閱讀 632評論 6 1

友情鏈接更多精彩內(nèi)容