要创建一个类似于numpy.array()的数组,可以使用Python内置的列表(list)和列表推导式。以下是一个示例代码:
class Array:
def __init__(self, *args):
self.shape = (len(args),)
self.data = list(args)
def __str__(self):
return str(self.data)
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
def __len__(self):
return len(self.data)
def append(self, value):
self.data.append(value)
self.shape = (len(self.data),)
def extend(self, values):
self.data.extend(values)
self.shape = (len(self.data),)
# 创建一个Array对象
arr = Array(1, 2, 3, 4, 5)
print(arr) # 输出: [1, 2, 3, 4, 5]
print(arr[2]) # 输出: 3
# 修改数组元素
arr[1] = 10
print(arr) # 输出: [1, 10, 3, 4, 5]
# 添加元素
arr.append(6)
print(arr) # 输出: [1, 10, 3, 4, 5, 6]
# 扩展数组
arr.extend([7, 8, 9])
print(arr) # 输出: [1, 10, 3, 4, 5, 6, 7, 8, 9]
在上述代码中,我们创建了一个名为Array的类来实现类似于numpy.array()的数组。构造函数__init__()
接收一个可变数量的参数,并使用列表(list)来存储数据。__str__()
方法用于打印数组内容,__getitem__()
和__setitem__()
方法用于获取和设置数组元素的值。__len__()
方法返回数组的长度。append()
和extend()
方法用于添加元素到数组中,并更新数组的形状(shape)。
使用这个自定义的Array类,你可以创建一个类似于numpy.array()的数组,并进行索引、修改和扩展等操作。