开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
array.py 4.37 KB
一键复制 编辑 原始数据 按行查看 历史
4.9527 提交于 2019年12月04日 10:41 +08:00 . read chapter 9
import ctypes
class Array:
def __init__(self, size):
assert size > 0 , "Array size must be > 0"
self._size = size
PyArrayType = ctypes.py_object * size
self._element = PyArrayType()
self.clear(None)
def __len__(self):
return self._size
def __getitem__(self, index):
assert index >= 0 and index < len(self), "Array subscript out of range"
return self._element[index]
def __setitem__(self, index, value):
assert index >= 0 and index < len(self), "Array subscript out of range"
self._element[index] = value
def clear(self, value):
for i in range(len(self)):
self._element[i] = value
def __iter__(self):
return _ArrayIterator(self._element)
class _ArrayIterator:
def __init__(self, theArray):
self._arrayRef = theArray
self._curNdx = 0
def __iter__(self):
return self
def __next__(self):
if self._curNdx < len(self._arrayRef):
entry = self._arrayRef[self._curNdx]
self._curNdx += 1
return entry
else :
raise StopIteration
class Array2D:
def __init__(self, numRows, numcols):
self._theRows = Array(numRows)
for i in range(numRows):
self._theRows[i] = Array(numcols)
def numRows(self):
return len(self._theRows)
def numCols(self):
return len(self._theRows[0])
def clear(self, value):
for row in self._theRows:
row.clear(value)
def __getitem__(self, ndxTuple):
assert len(ndxTuple) == 2 , "Invalid number of array subscript"
row = ndxTuple[0]
col = ndxTuple[1]
assert row >= 0 and row < self.numRows() \
and col >= 0 and col < self.numCols(), \
"array subscript out of range."
the1DArray = self._theRows[row]
return the1DArray[col]
def __setitem__(self, ndxTuple, value):
assert len(ndxTuple) == 2 , "Invalid number of array subscript."
row = ndxTuple[0]
col = ndxTuple[1]
assert row >= 0 and row < self.numRows() \
and col >= 0 and col < self.numCols(), \
"array subscript out of range."
the1DArray = self._theRows[row]
the1DArray[col] = value
class Array2DList:
def __init__(self, numRows, numcols):
self._theRows = [1] * numRows
for i in range(numRows):
self._theRows[i] = [1] * numcols
class MultiArray :
def __init__(self, *dimensions) :
assert len(dimensions) > 1, "The array must have 2 or more dimensions."
self._dims = dimensions
size = 1
for d in dimensions:
assert d > 0, "Dimensions must be > 0."
size *= d
self._elements = Array(size)
self._factors = Array(len(dimensions))
self._computeFactors()
def numDims(self):
return len(self._dims)
def length(self, dim):
assert dim >= 1 and dim < len(self._dims), \
"Dimension component out of range."
return self._dims[dim - 1]
def clear(self, value):
self._elements.clear(value)
def __getitem__(self, ndxTuple):
assert len(ndxTuple) == self.numDims(), "Invalid # of array subscripts."
index = self._computeIndex(ndxTuple)
assert index is not None, "Array subscript out of range."
return self._elements[index]
def __setitem__(self, ndxTuple, value):
assert len(ndxTuple) -- self.numDims(), "Invalid # of array subscripts."
index = self._computeIndex(ndxTuple)
assert index is not None, "Array subscript out of range."
self._elements[index] = value
def _computeIndex(self, idx):
offset = 0
for j in range(len(idx)) :
if idx[j] < 0 or idx[j] >= self._dims[j]:
return None
else :
offset += idx[j] * self._factors[j]
return offset
def _computeFactors(self):
""" comput factors f.
i1 * f1 + ... + i n-1 * f n-1 + i n * 1"""
for factorIdx in range(len(self._factors)):
self._factors[factorIdx] = 1
# fn == 1
if factorIdx == len(self._factors) - 1:
continue
# f n-1
else :
for dimIdx in range(factorIdx + 1, len(self._factors)):
self._factors[factorIdx] *= self._dims[dimIdx]
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/nicolas4d/Data-Structures-and-Algorithms-Using-Python.git
git@gitee.com:nicolas4d/Data-Structures-and-Algorithms-Using-Python.git
nicolas4d
Data-Structures-and-Algorithms-Using-Python
Data-Structures-and-Algorithms-Using-Python
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /