gpt4 book ai didi

python - python中如何定义动态二维数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:55 29 4
gpt4 key购买 nike

我想在python中定义一个动态二维数组。

我不知道我的二维数组在我的程序开始时会有多少行。我想根据需要在此二维数组中定义新行。

就像这段代码:

array = [][100]
array[0][] = new array()
array[0][2] = 'hello'

array[1][] = new array()
array[1][3]= 'hello'

最佳答案

你的意思是像下面这样的吗?

class DynamicList(list):

def __getslice__(self, i, j):
return self.__getitem__(slice(i, j))
def __setslice__(self, i, j, seq):
return self.__setitem__(slice(i, j), seq)
def __delslice__(self, i, j):
return self.__delitem__(slice(i, j))

def _resize(self, index):
n = len(self)
if isinstance(index, slice):
m = max(abs(index.start), abs(index.stop))
else:
m = index + 1
if m > n:
self.extend([self.__class__() for i in range(m - n)])

def __getitem__(self, index):
self._resize(index)
return list.__getitem__(self, index)

def __setitem__(self, index, item):
self._resize(index)
if isinstance(item, list):
item = self.__class__(item)
list.__setitem__(self, index, item)

>>> mat = DynamicList()
>>> mat[0] = ['row1','row1','row1']
>>> mat[1] = ['row2','row2']
>>> mat[2]= ['row3']
>>> mat
[['row1', 'row1', 'row1'], ['row2', 'row2'], ['row3']]
>>> print mat[1][1]
row2
>>> mat[5][5] = 'row5'
>>> mat
[['row1', 'row1', 'row1'], ['row2', 'row2'], ['row3'], [], [], [[], [], [], [],
[], 'row5']]
>>> print mat[5]
[[], [], [], [], [], 'row5']
>>> print mat[5][5]
row5

关于python - python中如何定义动态二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673006/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com