在 Python 中如何将数组转换为列表
使用 Python 的 tolist() 函数,您可以将一个数组转换为一个列表。以下是一个例子:
import array
arr = array.array("i", [1, 2, 3, 4, 5])
lst = arr.tolist()
print(type(lst)) # <class 'list'>
print(lst)
输出 :
[1, 2, 3, 4, 5]
在这个例子中,我们使用 array.array() 构造函数 创建了一个类型为 “i”(代表整数)的数组 arr。然后使用 tolist() 方法 将数组 arr 转换为列表 lst。最后,使用 type() 函数 验证生成的 lst 确实是一个列表,并使用 print() 函数 显示列表的内容。
另一种方法是使用列表推导式(list comprehension)。列表推导式是一种简洁的方式,可以通过将函数应用于现有列表的每个元素来创建一个新列表。以下是使用列表推导式将数组转换为列表的示例:
import array
arr = array.array("i", [1, 2, 3, 4, 5])
lst = [x for x in arr]
print(type(lst)) # <class 'list'>
print(lst)
输出 :
[1, 2, 3, 4, 5]
在这个例子中,使用 for() 循环迭代数组 arr,并使用列表推导式将数组的每个元素 x 添加到一个新列表 lst
中。最后,使用 type()
函数验证了生成的 lst
确实是一个 列表 并使用 print()
函数显示了该列表的内容。
注意,数组的元素不会被复制或复制到列表中。相反,列表将引用与初始数组相同的条目。这意味着修改列表也会修改初始数组。以下是一个示例以演示这一点:
import array
arr = array.array("i", [1, 2, 3, 4, 5])
lst = arr.tolist()
lst[0] = 10
print(arr)
输出 :
array('i', [10, 2, 3, 4, 5])
在这个例子中,使用 tolist() 方法 将数组 arr
转换为一个列表 lst
。然后,将列表 lst
的第一个元素修改为 10
。当您运行代码时,可以看到原始数组 arr
也已被修改,因为数组的第一个元素现在也是 10
。
如果您想创建一个与数组具有相同元素的完全独立的列表,您需要使用 copy 模块的 copy() 方法。以下是一个示例:
import array
import copy
arr = array.array("i", [1, 2, 3, 4, 5])
lst = copy.copy(arr)
lst[0] = 10
print(arr)
输出 :
array('i', [1, 2, 3, 4, 5])
在这个例子中,我们使用 copy.copy() 方法 创建了数组 arr
的一个浅拷贝,并将其赋值给列表 lst
。现在,当我们将列表 lst
的第一个元素修改为 10
时,原始数组 arr
不受影响。