python編程:從入門到實踐學習筆記-字典

字典相似於經過聯繫人名字查找聯繫人電話號碼的電話本,即把鍵(名字)和值(電話號碼)聯繫在一塊兒。注意,鍵必須是惟一的。而且python只能使用不可變的對象(好比字符串)來做爲字典的鍵,可是能夠將不可變或可變的對象做爲字典的值。舉一個簡單的字典例子。python


alien = {'color': 'green', 'points': 5}複製代碼

鍵值對在字典中的標記爲:d = {key1 : value1, key2 : value2 }。注意鍵/值對用冒號分割,而各個對用逗號分割,全部這些都包括在花括號中。字典中的鍵/值對是沒有順序的。若是想要一個指定的順序,那麼在使用前自行排序。ruby

使用字典

訪問字典中的值
依次指定字典名和放在方括號內的鍵,以下所示:bash

alien = {'color': 'green', 'points': 5}
print(alien_0['color'])

#運行結果:
green複製代碼

建立字典並修改字典中的值
建立空字典時使用一對空的花括號定義一個字典,再分行添加各個鍵值對。
修改字典的值能夠指定字典名、鍵以及新的賦值。網站

alien = {}
alien['x_position'] = 0
alien['y_position'] = 25
print(alien)
alien['x_position'] = 25
print(alien)

#運行結果:
{'x_position': 0, 'y_position': 25}
{'x_position': 25, 'y_position': 25}複製代碼

添加/刪除鍵值對
字典是一種動態結構。
添加鍵值對時,依次指定字典名、方括號和鍵、所賦的值。
刪除鍵值對時,可以使用del語句,指定字典名和要刪除的鍵。ui

alien = {'color': 'green', 'points': 5}
print(alien)
alien['x_position'] = 0
alien['y_position'] = 25
print(alien)
del alien['color']
print(alien)

#運行結果:
{'color': 'green', 'points': 5}
{'color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0}
{'points': 5, 'y_position': 25, 'x_position': 0}複製代碼

遍歷字典

遍歷全部的鍵值對spa

user = {
    'username': 'efermi',#前面有四個空格的縮進,下同
    'first': 'enrico',
    'last': 'fermi',
    }
for key, value in user.items()
    print("\nKey: " + key)
    print("Value: " + value)

#運行結果:
Key: last
Value: fermi

Key: first
Value: enrico

Key: username
Value: efermi複製代碼

由上可知,在字典的遍歷中,能夠聲明兩個變量分別存儲鍵值對中的鍵和值。字典的方法item()返回一個鍵值對列表。注意,在遍歷字典的時候,鍵值對的返回順序與存儲順序不一樣。python只關係鍵和值之間的對應關係。code

遍歷字典中的全部鍵/值
使用方法keys()能夠遍歷字典中的全部鍵。或者不使用方法,默認遍歷字典中的鍵。
使用方法values()能夠遍歷字典中的全部值。返回一個值列表。對象

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

#運行結果:
Jen
Sarah
Edward
Phil
Python
C
Ruby
Python複製代碼

或者不使用方法,默認遍歷字典中的鍵。即for name in favorite_languages.keys():效果等同for name in favorite_languages:
若需按順序遍歷,只需使用sorted()排序

嵌套

將一系列字典存儲在列表中,或者將列表做爲值存儲在字典中,稱爲嵌套。字符串

字典列表
將一系列字典存儲在列表中。

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)

#運行結果:
{'color': 'green', 'points': 5}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}複製代碼

列表字典
將字典存儲在列表中。

lili = {
    'name': 'lili',
    'phonenum': ['123', '456'],
    }
print("lili's name is " + lili['name'] + " and her phonenum is ")
for num in lili['phonenum']:
    print("\t" + num)

#運行結果:
lili's name is lili and her phonenum is 123 456複製代碼

字典中嵌套字典
存儲網站用戶信息能夠在字典中嵌套字典,例如:

users = {
    'aeinstein': {
            'first': 'albert',
            'last': 'einstein',
            'location': 'princeton',
            },
    'mcurie': {
            'first': 'marie',
            'last': 'curie',
            'location': 'paris',
            },
    }
for username, user_info in users.items():
    print("\nUsername: " + username)
    full_name = user_info['first'] + " " + user_info['last']
    location = user_info['location']
    print("\tFull name: " + full_name.title())
    print("\tLocation: " + location.title())

#運行結果:
Username: aeinstein
    Full name: Albert Einstein
    Location: Princeton

Username: mcurie
    Full name: Marie Curie
    Location: Paris複製代碼
相關文章
相關標籤/搜索