【編測編學】零基礎學python_10_列表(建立數值列表 )

bcbxhome發表於2020-11-25

建立數值列表 

需要儲存一組數字的原因有很多,例如,在遊戲中,需要跟蹤每個角色的位置,還可能需要跟蹤玩家的幾個最高得分。在資料視覺化中,處理的幾乎都是由數字(如溫度、距離、人口數量、經度和緯度等)組成的集合。
列表非常適合用於儲存數字集合,而Python提供了很多工具,可幫助你高效地處理數字列表。明白如何有效地使用這些工具後,即便列表包含數百萬個元素,你編寫的程式碼也能執行得很好。 



1.使用函式range() 
Python函式range() 讓你能夠輕鬆地生成一系列的數字。例如,可以像下面這樣使用函式range() 來列印一系列的數字: 

  1. for value in range(1,5):
  2.      print(value)
複製程式碼

上述程式碼好像應該列印數字1~5,但實際上它不會列印數字5: 
【編測編學】零基礎學python_10_列表(建立數值列表 ) 
在這個示例中,range() 只是列印數字1~4,這是你在程式語言中經常看到的差一行為的結果。函式range() 讓Python從你指定的第一個值開始數,並在到達你指定的第二個值後停止,因此輸出不包含第二個值(這裡為5)。 
要列印數字1~5,需要使用range(1,6) : 

  1. for value in range(1,6):
  2.          print(value)
複製程式碼

這樣,輸出將從1開始,到5結束: 
【編測編學】零基礎學python_10_列表(建立數值列表 ) 
使用range() 時,如果輸出不符合預期,請嘗試將指定的值加1或減1。


2.使用range() 建立數字列表 
要建立數字列表,可使用函式list() 將range() 的結果直接轉換為列表。如果將range() 作為list() 的引數,輸出將為一個數字列表。 
在前一節的示例中,我們列印了一系列數字。要將這些數字轉換為一個列表,可使用list() : 

  1. numbers = list(range(1,6))
  2.      print(numbers)
複製程式碼

結果如下: 
【編測編學】零基礎學python_10_列表(建立數值列表 ) 
使用函式range() 時,還可指定步長。例如,下面的程式碼列印1~10內的偶數: 

  1. even_numbers = list(range(2,11,2))
  2. print(even_numbers)
複製程式碼

在這個示例中,函式range() 從2開始數,然後不斷地加2,直到達到或超過終值(11),因此輸出如下: 
【編測編學】零基礎學python_10_列表(建立數值列表 ) 
使用函式range() 幾乎能夠建立任何需要的數字集,例如,如何建立一個列表,其中包含前10個整數(即1~10)的平方呢?在Python中,兩個星號(** )表示乘方運算。下面的程式碼演示瞭如何將前10個整數的平方加入到一個列表中: 

  1. squares = []
  2. for value in range(1,11):
  3.         square = value**2
  4.         squares.append(square)
  5. print(squares)
複製程式碼


首先,我們建立了一個空列表;接下來,使用函式range() 讓Python遍歷1~10的值。在迴圈中,計算當前值的平方,並將結果儲存到變數square 中。然後,將新計算得到的平方值附加到列表squares 末尾。最後,迴圈結束後,列印列表squares : 

【編測編學】零基礎學python_10_列表(建立數值列表 ) 
為讓這些程式碼更簡潔,可不使用臨時變數square ,而直接將每個計算得到的值附加到列表末尾: 

  1. squares = []
  2. for value in range(1,11):
  3.          squares.append(value**2)
  4. print(squares)
複製程式碼

【編測編學】零基礎學python_10_列表(建立數值列表 ) 
兩種程式碼等效。在迴圈中,計算每個值的平方,並立即將結果附加到列表squares 的末尾。 
建立更復雜的列表時,可使用上述兩種方法中的任何一種。有時候,使用臨時變數會讓程式碼更易讀;而在其他情況下,這樣做只會讓程式碼無謂地變長。你首先應該考慮的是,編寫清晰易懂且能完成所需功能的程式碼;等到稽核程式碼時,再考慮採用更高效的方法。 


3.對數字列表執行簡單的統計計算 
有幾個專門用於處理數字列表的Python函式。例如,你可以輕鬆地找出數字列表的最大值、最小值和總和: 

  1. lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
  2. print(min(lists))
  3. print(max(lists))
  4. print(sum(lists))
複製程式碼

【編測編學】零基礎學python_10_列表(建立數值列表 ) 
注意:出於版面考慮,本節使用的數字列表都很短,但這裡介紹的知識也適用於包含數百萬個數字的列表。 


4.列表解析 
前面介紹的生成列表squares 的方式包含三四行程式碼,而列表解析讓你只需編寫一行程式碼就能生成這樣的列表。列表析將for 迴圈和建立新元素的程式碼合併成一行,並自動附加新元素。面向初學者的書籍並非都會介紹列表解析,這裡之所以介紹列表解析,是因為等你開始閱讀他人編寫的程式碼時,很可能會遇到它們。 
下面的示例使用列表解析建立你在前面看到的平方數列表: 

  1. squares = [value**2 for value in range(1,11)]
  2. print(squares)
複製程式碼

要使用這種語法,首先指定一個描述性的列表名,如squares ;然後,指定一個左方括號,並定義一個表示式,用於生成你要儲存到列表中的值。在這個示例中,表示式為value**2 ,它計算平方值。接下來,編寫一個for 迴圈,用於給表示式提供值,再加上右方括號。在這個示例中,for 迴圈為for value in range(1,11) ,它將值1~10提供給表示式value**2 。請注意,這裡的for 語句末尾沒有冒號,結果與你在前面看到的平方數列表相同: 

【編測編學】零基礎學python_10_列表(建立數值列表 ) 
要建立自己的列表解析,需要經過一定的練習,但能夠熟練地建立常規列表後,你會發現這樣做是完全值得的。當你覺得編寫三四行程式碼來生成列表有點繁複時,就應考慮建立 列表解析 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2736840/,如需轉載,請註明出處,否則將追究法律責任。

相關文章