|
列表的维度由你自己来控制. 我给你那段代码是想说明虽然维度看起来是非线性的, 但是最终存储时都是线性的, 所以其实一维或是多维从存储角度来讲并没有什么太大的不同. 当然, 变长列表有所不同.
上面的代码如果扩展一下, 可以实现自己的二维数组类:
- #-*- coding:utf-8 -*-
- class 二维数组():
- def __init__(self,总行数,总列数, 初始值 = 0):
- self.总行数 = 总行数
- self.总列数 = 总列数
- self.初始值 = 初始值
- self.列表1 = []
- def 初始化(self):
- self.列表1 = [ self.初始值 轮取 元素 in range( self.总行数 * self.总列数) ]
- 返回 self.列表1
- def 赋值(self, 行数, 列数, 元素值):
- self.下标 = (行数-1) * self.总列数 + 列数-1
- self.列表1[self.下标] = 元素值
- def 取值(self, 行数, 列数):
- 下标 = (行数-1) * self.总列数 + 列数-1
- 返回 self.列表1[下标]
- 总行数 = 3
- 总列数 = 4
- 数组1 = 二维数组(总行数,总列数,0)
- 数组1.初始化()
- 数组1.赋值(2,2,17)
- 数组2 = 二维数组(4,5,0)
- 数组2.初始化()
- 数组2.赋值(4,5,29)
- print(数组1.取值(2,2), 数组2.取值(4,5))
复制代码 |
|