陳新龍
Python 是一個高層次的結合了解釋性、編譯性、互動性、面向對象的腳本語言。相比其他語言其語法結構更具可讀性。之前我們用Python解決了許多數學問題,還制作了小游戲,并用于數據分析,但如果不系統(tǒng)性地梳理Python核心語法會影響我們未來的提高,本期開始我們一起系統(tǒng)學習Python的基礎知識。
不知道細心的你是否注意到,之前解數學題或利用爬蟲分析大數據,都用到了列表(list)。Python的列表十分強大,被認為是Python中最核心的部分,很多操作都需要基于列表來實現(xiàn)。今天我們來具體講一講列表以及和它相似的元組。
一、列表
1. 列表的定義:我們可以把列表當作一種容器,用它來存放數據??梢栽谄渲写娣畔嗤愋偷臄祿?,也可以存放不同類型的數據,但是為了提高程序的可讀性,建議在一個列表中存放同一種數據類型(圖1)。
2. 數值列表的創(chuàng)建(list()函數):當我們需要創(chuàng)建擁有一定數值的列表,而又不想手動輸入時,可以用list()函數嵌套range()函數直接進行創(chuàng)建。但是需要注意range()函數中遵循左閉右開的規(guī)則(圖2)。
3. 刪除列表:可以用del語句刪除不需要的列表。通過報錯的提示我們可以知道創(chuàng)建的列表已經成功刪除了(圖3)。
4. 列表復制:當需要某個列表的副本時,就需要復制列表中的元素。請思考一下,如果先定義一個列表,然后再定義第二個列表,讓第二個列表等于第一個列表,當我們修改第一個列表中的值后,第二個列表中的對應值會跟著改變嗎?你會發(fā)現(xiàn)復制的列表會跟隨第一個列表中的元素值改變,說明了它們是使用的同一列表。通過訪問id也可以確定兩個列表地址相同(圖4)。
以上是關于列表的基礎小知識,當然我們在用到列表時還有很多技巧性的知識包括列表的推導式或列表的函數等等,在以后的學習中會逐步涉及。
二、元組
了解了列表后,我們再來看看和列表相似的元組,元組是一種不可改變的序列,它和列表相似,主要的區(qū)別就是元組創(chuàng)建之后,就不能再對里面的元素進行增刪操作了。我們用中括號表示列表,用小括號表示元組。
1. 創(chuàng)建元組:創(chuàng)建元組的方式和創(chuàng)建列表的方式相同,可以直接創(chuàng)建,也可以通過range()函數來創(chuàng)建(圖5)。
2. 刪除元組:刪除元組的方式和列表相同,直接使用del語法進行刪除,形式如圖6,刪除成功后,元組不存在,再輸出就會報錯(圖6)。
3. 訪問和修改元素:我們在訪問元組元素時是根據索引位置去找到所要訪問的元素。索引相信大家都不陌生,在Scratch的列表中我們已經用過。(注意:索引的值從0開始)首先我們創(chuàng)建一個列表和元組。當索引值在正確的范圍內找出值,當超出范圍后則報錯(圖7)。
因為元組是不可變的數列,列表是可以變的數列,所以我們可以對列表元素進行直接修改,但是不可以對元組元素進行修改。如果想通過索引值修改元組元素的話會出現(xiàn)錯誤信息。我們非要修改元組中的元素就要采用其他的方法,通常會采用兩種方式,一種是重新賦值法,一種是類型轉換法(圖8)。
元組相對于列表缺少了一些靈活,但一是元組的性能比較高,元組的處理速度要快于列表。二是它更安全,當數據規(guī)模較大時,使用元組能保障重要數據不會被竄改,用在存儲方面是一個很好的選擇??傊涀×斜硎强梢蕴砑觿h改元素。