python編程基礎(五):字典

區別一下  列表、元組、字典的形式

列表:  列表名 = [  ]    # 注意列表用中括號

元組:  元組名 = (  )   # 注意元組用小括號

字典: 字典名 =  {  }   #注意字典用花括號

一、使用字典

1、字典用 花括號 括起來,並且使用“鍵-值”的形式

alien_0 = {'color':'green','points':5}

print(alien_0['color'])
print(alien_0['points'])


結果:
green
5

2、添加 鍵-值 對

字典是一種動態的結構,可以隨時添加 鍵-值  對,添加方式是,直接對字典定義 鍵及對應的值

alien_0 = {'color':'green','points':5}

print(alien_0)

alien_0['x_position'] = 0
alien_0['y_position'] = 25

print(alien_0)



結果:
{'points': 5, 'color': 'green'}
{'points': 5, 'color': 'green', 'y_position': 25, 'x_position': 0}

可以發現,定義的順序和在字典中存儲的順序是不一樣的,因爲字典只在意的是 鍵與值之間的對應關係。

3、修改字典中的值

直接修改對應鍵的值即可

4、刪除 鍵-值 對      del語句

alien_0 = {'color':'green','points':5}

print(alien_0)

del alien_0['points']

print(alien_0)


結果:
{'points': 5, 'color': 'green'}
{'color': 'green'}

二、遍歷字典

1、遍歷所有的  鍵-值  對     .items() 語句

使用   .items() 返回的是一個由 鍵-值  組成的列表。注意,在遍歷所有的  鍵-值  的時候,用於 for  的變量名最好是代表着字典中元素的意義的,如下:

1、 例1
user_0 = {
          'username':'efermi',
          'frist':'enrico',
          'last':'fermi'}
          
          
for key, value in user_0.items():
    print('\nKey:' + key)
    print('Value:' + value)
    


結果:
Key:frist
Value:enrico

Key:username
Value:efermi

Key:last
Value:fermi



2、 例2
    
favorite_languages={
                    'jen':'python',
                    'sarah':'c',
                    'edward':'ruby',
                    'phil':'python',
                    'chen':'c++'}
                    
                    
for name, language in favorite_languages.items():
    print(name.title() + "'s favorite language is " + 
          language + '.')


結果:
Chen's favorite language is c++.
Phil's favorite language is python.
Jen's favorite language is python.
Edward's favorite language is ruby.
Sarah's favorite language is c.

由於例2中的字典表示的是 每個人所喜歡的編程語言,所以鍵 可以表示爲name,值可以用 language 表示。

2、遍歷所有的  鍵       .keys()

favorite_languages={
                    'jen':'python',
                    'sarah':'c',
                    'edward':'ruby',
                    'phil':'python',
                    'chen':'c++'}
                    
                    
for name in favorite_languages.keys():
    print(name.title())


結果:
Chen
Phil
Jen
Edward
Sarah

3、遍歷所有的  值       .values()

favorite_languages={
                    'jen':'python',
                    'sarah':'c',
                    'edward':'ruby',
                    'phil':'python',
                    'chen':'c++'}
                    
                    
for language in favorite_languages.values():
    print(language.title())


結果:
C++
Python
Python
Ruby
C

可以發現,如果是直接將 值取出來的話,可能有很多的重複內容,因爲鍵一般情況下不會有重複,但是值會有,如果我們想剔除值中重複的項,可以使用 set() 語句來實現:

favorite_languages={
                    'jen':'python',
                    'sarah':'c',
                    'edward':'ruby',
                    'phil':'python',
                    'chen':'c++'}
                    
                    
for language in set(favorite_languages.values()):
    print(language.title())


結果:
C
Ruby
Python
C++

注意:for language in set(favorite_languages.values())  

set 加在 字典.values()  前面

三、嵌套

嵌套分爲三種: 字典列表(列表中的元素是字典),列表字典(字典中鍵的值是列表),字典嵌套(字典中鍵的值是字典)

1、字典列表

alien_0 = {'color':'green','points':5}
alien_1 = {'color':'yellow','points':10}
alien_2 = {'color':'red','points':15}

aliens = [alien_0,alien_1,alien_2]

for alien in aliens:
    print(alien)


結果:
{'points': 5, 'color': 'green'}
{'points': 10, 'color': 'yellow'}
{'points': 15, 'color': 'red'}

2、列表字典

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



結果:
Phil's favorite language are:
        Python
        C#
Jen's favorite language are:
        Python
        C
Edward's favorite language are:
        Ruby
        Matlab
Sarah's favorite language are:
        C
        C++

3、字典嵌套

users = {
         'aeinstein':{
                      'frist':'albert',
                      'last':'einstein',
                      'location':'china',
                      },
                      
          'mcurie':{
                    'frist':'marie',
                    'last':'curie',
                    'location':'paris',
                    },
        }
        
for use_name,user_info in users.items():
    print('\n Username:' + use_name.title())
    full_name = user_info['frist'] + ' ' + user_info['last']
    location = user_info['location']

    print('\t Full name:' + full_name.title())
    print('\t Location:' + location.title())



結果:
 Username:Mcurie
         Full name:Marie Curie
         Location:Paris

 Username:Aeinstein
         Full name:Albert Einstein
         Location:China

 

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