CodeGym /Java Adesua /Python SELF TW /獲取子列表

獲取子列表

Python SELF TW
等級 7 , 課堂 3
開放

3.1 索引範圍

從列表中獲取子列表是常見的任務,可以通過 slicing 機制來完成。slicing 允許你通過指定範圍的起始和結束索引,以及提取元素的步長來從列表中提取元素。

使用slicing

可以使用語法 list[start:stop:step] 來獲取列表的slice,其中:

  • start — 起始索引(包含);
  • stop — 結束索引(不包含);
  • step — 選擇元素的步長。

slicing的語法允許你指定想要獲取的列表的起始和結束索引。記住,Python中的索引是從零開始的,也就是說第一個元素的索引是0,第三個元素的索引是2。


my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 獲取從第三個到第七個元素的子列表
sub_list = my_list[2:7]
print(sub_list)  # [2, 3, 4, 5, 6]
            
# 獲取列表中的每隔一個的元素
step_list = my_list[0:10:2]
print(step_list)  # [0, 2, 4, 6, 8]

如果 start 沒有指定,則默認為列表的開頭,如果 stop 沒有指定,則默認為列表的結尾。如果 step 沒有指定,則默認為1。

例子:


my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 從頭開始到第三個元素
sub_list = my_list[:3]
print(sub_list)  # [0, 1, 2]
            
# 從第一個元素/索引到結尾
step_list = my_list[1:]
print(step_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

3.2 負索引

在Python中,負索引提供了一種強大的方式來操作列表,允許從列表末尾開始訪問元素。這對於獲取子列表而不知原始列表的確切長度特別有用。

Python中的負索引從-1開始,對應於列表的最後一個元素。-2將指向倒數第二個元素,依此類推。使用負索引可以更容易地從列表末尾訪問元素,無需從頭開始計算它們的位置。

使用範例

假設,你有一個列表:


my_list = ['a', 'b', 'c', 'd', 'e']

要獲取最後三個元素,可以使用帶有負索引的slicing:


sub_list = my_list[-3:]
print(sub_list)  # 會顯示 ['c', 'd', 'e']

如果需要從末尾開始獲取某些元素之間的子列表,可以結合使用負索引和正索引:


sub_list = my_list[-4:3]
print(sub_list)  # 會顯示 ['b', 'c']

還可以將列表反轉

通過使用 step 參數,可以創建更複雜的slicing,例如,以反向順序提取元素:


sub_list = my_list[::-1]
print(sub_list)  # 會顯示 ['e', 'd', 'c', 'b', 'a'] 

使用負索引的好處:

  • 簡化代碼: 從列表末尾訪問元素變得直觀明了,不需要額外的計算。
  • 通用性: 該方法適用於任何列表,無論其大小如何。
  • 可讀性: 當需要處理列表的最後幾個元素時,代碼變得更易於閱讀和理解。

負索引 是Python程式設計師的一個強大工具,讓你能夠高效且簡潔地管理子列表,提升代碼的可讀性和靈活性。

3.3 列表中是否存在某個元素?

檢查元素是否在列表中經常用於數據流管理和程式邏輯。在Python中,可以使用 in 運算符來完成,當元素存在於列表中時返回 True,否則返回 False

使用 in 運算符

in 運算符是一種簡單且直觀的方式來檢查元素是否存在:


my_list = [1, 2, 3, 4, 5]
element = 3
exists = element in my_list
print(exists)  # 會顯示 True 

在條件表達式中的應用

in 運算符經常用於條件語句中,例如:


my_list = ["apple", "banana", "cherry"] 
element = "apple"
            
if element in my_list:
    print("元素在列表中。")
else:
    print("找不到元素。")

很有用! 對於小型或中型列表,使用 in 來查找元素是有效的。然而,對於大數據或頻繁的搜索操作,使用其他數據結構如集合 (set) 可能會更有效,因為它們提供更快的查找速度。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION