在 Python 中创建一个字符串数组

在 Python 中创建一个字符串数组

Create an array of strings in Python

要创建字符串数组:

  1. 使用列表理解迭代range长度为 N 的对象。
  2. 每次迭代返回一个字符串。
  3. 新列表将包含 N 个字符串。
主程序
# ✅ create array of empty strings (list comprehension) array_of_strings = ['' for _ in range(5)] print(array_of_strings) # 👉️ ['', '', '', '', ''] # ------------------------------------ # ✅ create array of empty strings (multiplication operator) array_of_strings = [''] * 5 print(array_of_strings) # 👉️ ['', '', '', '', '']

第一个示例使用列表理解来迭代range对象。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们只返回一个空字符串。

范围通常用于循环特定次数。

主程序
print(list(range(5))) # 👉️ [0, 1, 2, 3, 4] print(list(range(4))) # 👉️ [1, 2, 3, 4]

我们使用下划线_作为变量名称。有一种约定,使用下划线作为我们不打算使用的占位符变量的名称。

主程序
array_of_strings = ['' for _ in range(5)] print(array_of_strings) # 👉️ ['', '', '', '', '']

或者,您可以使用乘法运算符。

使用乘法运算符创建一个字符串数组

使用乘法运算符创建一个字符串数组,例如
array_of_strings = [''] * n. 当乘法运算符与列表和整数一起使用时,它会将列表中的项目重复 N 次。

主程序
array_of_strings = [''] * 5 print(array_of_strings) # 👉️ ['', '', '', '', '']

当乘法 ( * ) 运算符与列表和整数一起使用时,它会将列表中的项目重复 N 次。

主程序
print([''] * 5) # 👉️ ['', '', '', '', ''] print([''] * 4) # 👉️ ['', '', '', '']

但是,请注意,这种方法只能用于创建原始值数组(例如字符串或整数)。

如果您需要创建一个可变对象数组,例如列表或字典,这种方法将无法以可预测的方式工作。

主程序
array = [[]] * 5 print(array) # 👉️ [[], [], [], [], []] array[0].append('hey') # 👇️ [['hey'], ['hey'], ['hey'], ['hey'], ['hey']] print(array)

我们使用乘法运算符创建了一个包含 3 个空列表的列表。

但是,所有 3 个子列表都代表同一个对象。

它们都存储在内存中的相同位置,因此当我们向一个列表添加一个值时,更改也会反映在其他列表中。

您可以使用range()该类来解决这个问题。

主程序
array = [[] for _ in range(5)] print(array) # 👉️ [[], [], [], [], []] array[0].append('hey') print(array) # 👉️ [['hey'], [], [], [], []]

现在所有子列表都是单独的对象,存储在内存中的不同位置。

或者,您可以使用for循环。

使用 for 循环创建一个字符串数组

要创建字符串数组:

  1. 使用for循环遍历range长度为 N 的对象。
  2. 每次迭代返回一个字符串。
  3. 新列表将包含 N 个字符串。
主程序
array_of_strings = [] for _ in range(5): array_of_strings.append('') print(array_of_strings) # 👉️ ['', '', '', '', '']

我们使用for循环来迭代range对象。

在每次迭代中,我们将一个字符串附加到数组中。

最后一次迭代后,数组包含 N 个字符串。

您选择哪种方法是个人喜好的问题。我会使用乘法运算符,因为我发现它非常直接和直观。

发表评论