用Python写一个动态数组
时间: 2023-06-02 07:03:51 浏览: 53
好的,以下是Python实现动态数组的代码:
```python
class DynamicArray:
def __init__(self):
self.arr = []
self.size = 0
def __len__(self):
return self.size
def __getitem__(self, idx):
if not 0 <= idx < self.size:
raise IndexError("Index out of bounds")
return self.arr[idx]
def append(self, val):
self.arr.append(val)
self.size += 1
```
这个DynamicArray类可以作为一个动态数组的实现,支持常规的索引和元素追加操作。当数组的长度超过当前容量时,底层的列表会自动扩容,确保足够的存储空间。
相关问题
python 生成一个动态数组
Python中可以使用列表(list)来生成动态数组,可以通过append()方法来添加元素,也可以通过切片(slice)来进行添加、删除、修改等操作。
例如,以下代码可以生成一个动态数组并添加元素:
```
# 创建空列表
my_list = []
# 添加元素
my_list.append(1)
my_list.append(2)
my_list.append(3)
# 打印列表
print(my_list)
```
输出结果为:
```
[1, 2, 3]
```
同时,也可以通过切片来进行添加、删除、修改等操作。例如,以下代码可以在指定位置插入元素:
```
# 创建有元素的列表
my_list = [1, 2, 3]
# 在指定位置插入元素
my_list[1:1] = [4]
# 打印列表
print(my_list)
```
输出结果为:
```
[1, 4, 2, 3]
```
以上就是Python中生成动态数组的方法。
用python写一个动态生成多维数组
可以使用列表推导式来动态生成多维数组,以下是一个示例代码:
```python
# 生成一个3维数组,每个维度长度分别为2、3、4
arr = [[[0 for k in range(4)] for j in range(3)] for i in range(2)]
print(arr)
```
输出结果为:
```
[[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]
```
这个数组可以通过修改列表推导式中的参数来动态生成不同维度和长度的数组。