python入門:元組和字典

weixin_33912445發表於2017-05-19

有了列表的知識,元組和字典就相對比較容易理解了。本期結尾還有一個小小的思考題,有想法的同學可以在公眾號後臺與聰哥互動交流。

元組

元組對應的英文單詞是tuple,它可以理解為:一旦建立,就不能修改的列表。因此,除了不支援增刪改的操作,其它的列表性質,元組都有。

元組的建立和列表基本相同。由於元組不能修改,一般不會建立空的元組。


>>> points = (87, 91, 64, 75, 94)
>>> fruits = ('apple', 'banana', 'grape', 'orange', 'pear')
>>> scores = (
    ('Chinese', 90),
    ('Mathematics', 85),
    ('English', 93)
)

如果元組內只有一個元素,必須要加上一個逗號,否則python的直譯器不會認為它是元組。


>>> tup = (1)
>>> type(tup)
<class 'int'>
>>> tup = (1,)
>>> type(tup)
<class 'tuple'>

元組不能被修改,使用起來肯定有所不便,為什麼我們不用更加方便的列表呢?其實,不能修改從某種意義上來說,也是一種優勢,因為它使得資料更有安全性。所以在傳輸資料的時候,我們更傾向於使用元組。

元組的表示和列表完全一樣,具體請看下圖示例。


>>> print(fruits)
('apple', 'banana', 'grape', 'orange', 'pear')
>>> print(fruits[0],fruits[-1])
apple pear
>>> print(fruits[0:2])
['apple', 'banana']

+可以連線兩個元組,通過賦值符號=可以生成一個新的元組。*符號也有類似的操作。


>>> fruits = ('apple', 'banana', 'grape', 'orange', 'pear')
>>> vagetables = ('cabbage', 'carrot', 'lettuce', 'pumpkin', 'tomato')
>>> food = fruits + vagetables
>>> print(food)
('apple', 'banana', 'grape', 'orange', 'pear',
'cabbage', 'carrot', 'lettuce', 'pumpkin', 'tomato')
>>> print(fruits * 2)
('apple', 'banana', 'grape', 'orange', 'pear',
'apple', 'banana', 'grape', 'orange', 'pear')

字典

字典的英文是dictionary。上一篇我們講到,可以使用“變數名+中括號+序號”的方式來表示列表中的元素。而字典是一種特殊的列表,它不用序號,而使用鍵值。這個鍵值,相當於是字典元素的一個名字。下面給出了三個字典示例,請大家觀察其特徵,是不是和列表很相似?


>>> points = { 0:87, 1:91, 2:64, 3:75, 4:94 }
>>> fruits = {
    0: 'apple', 1:'banana',
    2:'grape', 3:'orange',
    4:'pear'
}
>>> scores = {
    'Chinese': 90,
    'Mathematics': 85,
    'English': 93
}

由於計算機不允許兩個元素的鍵值相同,我們必須保證每個元素都有一個獨一無二的鍵值,否則字典會建立失敗。

根據列表的元素表示方法,我們可以推知:字典中的元素可以使用“變數名+中括號+鍵值”來表示。


>>> print(points[3])
75
>>> print(fruits[1])
apple
>>> print(scores['English'])
93

字典中的元素的也可以增加,修改和刪除。具體的實現方法和列表類似,具體請參考上一篇文章《python的列表》。下圖給出了示例:


>>> print(fruits)
{ 0:'apple', 1:'banana', 2:'grape', 3:'orange', 4:'pear' }
>>> fruits[1] = 'peach'
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear' }
>>> fruits[5] = 'pineapple'
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear', 5:'pineapple' }
>>> del fruits[5]
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear' }

值得注意的是:字典不支援用+實現連線操作,也不支援*實現重複的操作。

自此,python的變數,我們就全部講完了,大家可以開啟python命令列嘗試建立這幾種變數,並且對它們做增刪改的操作。

總結

  • 元組是不能修改的列表,安全性較好
  • 字典可以看作是自定義鍵值的列表
  • 字典的鍵值不能重複,鍵值也不能改變
  • 通過鍵值可以訪問字典,以及對字典內的資料進行修改

思考

下面三個字典中的第一個元素分別是什麼,應該如何表示它們。(答案下期公佈)

# 問題
# 下面三個字典中的第一個元素分別是什麼,應該如何表示它們。

points_1 = { 0:87, 1:91, 2:64, 3:75, 4:94 }
points_2 = { 0:'87', 1:'91', 2:'64', 3:'75', 4:'94' }
points_3 = { '0':87, '1':91, '2':64, '3':75, '4':94 }

# 答案
# 87, '87', 87
# points_1[0], points_2[0], points_3['0']

掃一掃這個二維碼,關注公眾號:聰哥python,獲取最新python3基礎教程

791044-3f0efc11874810bc.jpg
聰哥python

相關文章