操作清單資料

已完成

您可能需要處理清單的不同部分。 例如,假設您有一份清單,其中包含各月降雨量。 若要正確分析這種類型的資料,您可能需尋找三個月期間的降雨量。 或者,您可能想要按照降雨量從多到少的順序對清單進行排序。

Python 為處理清單中的資料提供了強大的支援。 這種支援包括分割資料 (僅檢查一部分) 和排序。

分割清單

您可以使用「分割」來擷取清單的一部分。 分割會使用括弧,但不是單一項目,而是具有開始和結束索引。 當您使用分割時,會建立新的清單,該清單會從起始索引開始,並在 (且「不」包含) 結束索引之前結束。

行星清單有八個項目。 地球是清單中的第三個項目。 若要取得地球之前的行星,請使用分割取得從 0 開始到 2 結束的項目:

planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets_before_earth = planets[0:2]
print(planets_before_earth)

輸出:['Mercury', 'Venus']

注意如何將地球排除在清單之外。 原因是索引在結束索引之前結束。

若要取得地球之後的所有行星,請從第三開始擷取至至第八:

planets_after_earth = planets[3:8]
print(planets_after_earth) 

輸出:['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

在範例中,顯示的是海王星。 原因是海王星的索引是 7,因為索引從 0 開始。 因為結束索引是 8,所以包含最後一個值。 如果您未將停止索引放在分割中,Python 會假設您想要擷取至清單結尾:

planets_after_earth = planets[3:]
print(planets_after_earth)

輸出:['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']

重要

分割會建立「新的」清單。 它不會修改目前的清單。

聯結清單

您已了解如何使用分割來切割清單,但如何將它們聯結在一起?

若要聯結兩個清單,您可以使用另一個運算子 (+) 搭配兩個清單,來傳回新的清單。

木星有 79 個已知的衛星。 最大的四個衛星分別是 Io、Europa、Ganymede 和 Callisto。 這些衛星稱為伽利略衛星,因為伽利略在 1610 年使用他的望遠鏡發現了這些衛星。 比伽利略衛星群更接近木星的是阿摩笛亞衛星群。 阿摩笛亞衛星群由 Metis、Adrastea、Amalthea 和 Thebe 四個衛星組成。

請建立兩個清單。 將四個阿摩笛亞衛星填入第一個清單,並將四個伽利略衛星填入第二個清單。 使用 + 聯結兩者,以建立新的清單:

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

輸出:The regular satellite moons of Jupiter are ['Metis', 'Adrastea', 'Amalthea', 'Thebe', 'Io', 'Europa', 'Ganymede', 'Callisto']

重要

聯結清單會建立「新的」清單。 它不會修改目前的清單。

排序清單

若要排序清單,請在清單上使用 .sort() 方法。 Python 會依字母順序排序字串清單,並依數字順序排序數字清單:

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort()
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

輸出:The regular satellite moons of Jupiter are ['Adrastea', 'Amalthea', 'Callisto', 'Europa', 'Ganymede', 'Io', 'Metis', 'Thebe']

若要以反向順序排序清單,請在清單上呼叫 .sort(reverse=True)

amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]

regular_satellite_moons = amalthea_group + galilean_moons
regular_satellite_moons.sort(reverse=True)
print("The regular satellite moons of Jupiter are", regular_satellite_moons)

輸出:The regular satellite moons of Jupiter are ['Thebe', 'Metis', 'Io', 'Ganymede', 'Europa', 'Callisto', 'Amalthea', 'Adrastea']

重要

使用 sort 會修改目前的清單。