在 Python 中獲取陣列的子陣列

Vaibhav Vaibhav 2022年12月21日
在 Python 中獲取陣列的子陣列

陣列的連續部分是子陣列,字串的連續部分是子字串。元素的順序相對於它們兩者的原始列表或字串保持相同。

與大多數其他程式語言相比,Python 使得獲取子陣列或子字串非常簡單。

在本文中,我們將學習如何使用 Python 獲取陣列的子陣列。

在 Python 中使用切片獲取陣列的子陣列

在 Python 中,我們可以使用切片來獲取陣列的子陣列。擴充套件索引是一種簡單方便的表示法,可用於對陣列或字串進行切片。它具有以下語法。

object[start:end:step]

以下是每個元件的解釋。

  • object - 一個列表或一個字串。
  • start - 切片的起始索引。預設值為 0
  • end - 切片的結束索引。請注意,作為此索引的值不是最終結果的一部分。預設值是可迭代物件的長度。
  • step - 最終結果中每個索引之間的增量數。預設情況下,它是 1

讓我們通過一些示例來了解如何使用這個 Python 特性來獲取陣列的子陣列。請參閱以下程式碼。

array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = array[1:4]
b = array[0:8]
c = array[6:]
d = array[:5]
print(a)
print(b)
print(c)
print(d)

輸出:

[2, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8]
[7, 8, 9, 10]
[1, 2, 3, 4, 5]

如我們所見,輸出包含 startend 索引之間的所有索引(包括 startend 除外)。此外,當 start 沒有設定值時,預設考慮第一個索引,當 end 沒有設定值時,預設考慮最後一個值。

我們可以進一步擴充套件它並將切片應用於列表的每個單獨值。我們將建立一個字串列表和一個列表列表,並使用列表推導和切片為每個字串和列表找到一個子字串和一個子陣列。列表推導式是一種內聯語法,用於迭代一個或多個列表並建立一個新列表。

有關上面討論的示例,請參閱以下程式碼。

a = ["Hello", "World", "Computer", "Science", "GitHub", "StakeOverflow"]
b = [
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [1.1, 2.2, 3.3, 4.4, 5.5],
    [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
    ["Q", "W", "E", "R", "T", "Y"],
    [True, False, None, None, False, True],
]
x = [element[1:5] for element in a]
y = [element[1:3] for element in b]
print(x)
print(y)

輸出:

['ello', 'orld', 'ompu', 'cien', 'itHu', 'take']
[[2, 3], [2.2, 3.3], [0.2, 0.3], ['W', 'E'], [False, None]]

對於字串列表中的每個字串,上面的 Python 程式碼將索引 1234 處的字元連線成一個新字串,並建立一個新的字串列表。對於列表列表,它將索引 12 處的所有值組合在一起,並建立一個新的列表列表。此外,我們將兩個新列表儲存在兩個新變數中並列印它們。

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

相關文章 - Python Array