字典(1)

Ohm發表於2018-09-04

6.2 使用字典

在Python中,字典是一系列鍵-值對。每個都與每一個值相關聯,你可以使用鍵來訪問與之相關聯的值。與鍵相關聯的值可以是數字、字串、列表乃至字典。 在Python中,字典是用放在花括號 {}中的一系列鍵-值對錶示。示例:

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

6.2.1 訪問字典中的值

要獲取與鍵相關聯的值,可依次指定字典名和放在方括號內的鍵。示例如下:

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

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

green
5

現在訪問下面這個列表:

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

new_points = alien_0['points']
print('You just earned ' + str(new_points) + ' points!')

上述程式碼首先定義了名為alien的一個字典,然後從這個字典中獲取鍵‘points’對應的值5,然後將這個值儲存到new_points中,再將這個整數使用函式str轉化為字串。並列印出玩家獲得了多少個點

You jusr earned 5 points

6.2.2 新增鍵-值對

字典是一個動態結構,可隨時新增鍵-值對,要新增鍵-值對,可依次制定字典名,方括號括起來的鍵和相關聯的值

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

alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)

我們首先定義了之前的字典名,然後列印了這個字典,以顯示其資訊。然後在字典中新增了兩個個新的鍵-值對,鍵‘x_position',值為0;鍵'y_position',值為25。然後列印修改後的字典.

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

注意,字典中鍵-值對的排列順序與新增順序不同。python不關心鍵-值對的新增順序,只關心鍵-值對的相關聯性

6.2.3 先建立一個空字典

又是根據需要我們要建立一個空字典,然後再分行新增各個鍵-值對。

alien_0 = {}

alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)

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

使用字典儲存擁護提供的資料或在編寫能自動生成大量鍵-值對的程式碼時。通常需要先定義個空字典。

6.2.4修改字典中的值

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

alien_0['color'] = 'yellow'
print('The alien is now ' + alien_0['color'] + '.')

首先我們定義了一個表示外星人alien_0的字典,其中只包含這個外星人的顏色。接下來,我們將與鍵'colro'相關聯的的值改為'yellow'。輸出表明,這個外星人確實從綠色改為了黃色:

The alien is green.
The alien is now yellow.

例子:對一個能夠以不同速度移動的外星人的位置進行跟蹤。為此,我們將儲存該外星人的當前速度,並據此確定該外星人向右移動多遠:

alien_0 = {'x_position': 0, 'y_position': 25, 'speed': 'medium'}
print('Original x-position: ' + str(alien_0['x_position']))

# 向右移動外星人
# 據外星人當前速度決定將其移動多遠
if alien_0['speed'] == 'slow':
    x_increment = 1
elif alien_0['speed'] == 'medium':
    x_increment = 2
else:
    # 這個外星人的速度一定很快
    x_increment = 3

# 新位置等於老位置加上增量
alien_0['x_position'] = alien_0['x_position'] + x_increment
print('New x_position: ' + str(alien_0['x_position']))

我們使用了一個if-elif-else結構來確定外星人向右移動了多遠,並將這個值儲存在變數x_inscrment中,如果外星人的速度為'slow',它將向右移動移動一個單位;如果外星人的速度為'medium',將向右移動兩個單位;如果外星人速度為'fast',它將向右移動三個單位。確定移動量後,將其與x_position的當前值相加,再將結果關聯到字典裡的鍵x_position。

由於這是一個速度中等的外星人,因此其位置將向右移動兩個單位:

Original x_position: 0
New x_position: 2

6.2.5 刪除鍵-值對

對於字典中不要得資訊,可以使用del語句將相對性的鍵-值對徹底刪除。使用del語句時,必須指定字典名和要刪除的鍵。例下:

alien_0 = {'color': "grenn', 'points': 5}
print(alien_0)

del alien_0['color']
print(alien_0)

del aline_0['color']程式碼讓Python將鍵’colore‘從字典alien_0處刪除,同時刪除相關聯的值。輸出表明鍵’color‘已被刪除,但其他鍵-值對並未受到影響。 {'color': 'green', 'points': 5} {'points': 5}