Skip to main content
 首页 » 编程设计

python之这个数组怎么分

2025年05月04日20think

当我尝试运行它时,出现以下错误

我将 array 导入为 arr

import array as arr 
x = arr.array([3, 6, 9, 12]) 
x/3.0 
print(x) 

我希望输出是

array([1, 2, 3, 4]) 

错误:

x = arr.array([3, 6, 9, 12]) 
TypeError: array() argument 1 must be a unicode character, not list 

有人可以向我解释为什么这件事没有发生吗?

请您参考如下方法:

这里有两个主要问题。

第一个问题是你没有正确初始化数组。根据documentation ,您需要指定一个 unicode 字符作为类型代码的第一个参数。由于您仅使用数组来存储整数,因此我们将使用 i。 (不过,您可能只想使用 list 而不是数组。)

第二个问题是您需要单独修改数组中的每个元素,而不是尝试将整个数组除以 3。例如:

import array as arr 
x = arr.array('i', [3, 6, 9, 12]) 
new_x = [] 
for element in x: 
    new_x.append(element // 3) 
print(new_x)  # [1, 2, 3, 4] 

注意 new_x 是一个列表,而 x 是一个数组。

最后,一种更简洁地表达此逻辑的方法是使用 list comprehension :

import array as arr 
x = arr.array('i', [3, 6, 9, 12]) 
new_x = [element // 3 for element in x] 
print(new_x)  # [1, 2, 3, 4]