在 Python 中创建一个字符串数组
Create an array of strings in Python
要创建字符串数组:
- 使用列表理解迭代
range
长度为 N 的对象。 - 每次迭代返回一个字符串。
- 新列表将包含 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 循环创建一个字符串数组
要创建字符串数组:
- 使用
for
循环遍历range
长度为 N 的对象。 - 每次迭代返回一个字符串。
- 新列表将包含 N 个字符串。
主程序
array_of_strings = [] for _ in range(5): array_of_strings.append('') print(array_of_strings) # 👉️ ['', '', '', '', '']
我们使用for
循环来迭代range
对象。
在每次迭代中,我们将一个字符串附加到数组中。
最后一次迭代后,数组包含 N 个字符串。
您选择哪种方法是个人喜好的问题。我会使用乘法运算符,因为我发现它非常直接和直观。