在 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