Python数据结构之Array用法实例


Posted in Python onOctober 09, 2014

本文实例讲述了python数据结构之Array用法,分享给大家供大家参考。具体方法如下:

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._elements = pyArrayType() 
    self.clear(None) 
 
  def clear(self, value): 
     for index in range(len(self)): 
       self._elements[index] = value 
 
  def __len__(self): 
    return self._size 
 
  def __getitem__(self, index): 
    assert index >= 0 and index < len(self), "index must >=0 and <= size" 
    return self._elements[index] 
 
  def __setitem__(self, index, value): 
    assert index >= 0 and index < len(self), "index must >=0 and <= size" 
    self._elements[index] = value 
 
  def __iter__(self): 
    return _ArrayIterator(self._elements) 
 
class _ArrayIterator: 
  def __init__(self, theArray): 
    self._arrayRef = theArray 
    self._curNdr = 0 
 
  def __next__(self): 
    if self._curNdr < len(theArray): 
      entry = self._arrayRef[self._curNdr] 
      sllf._curNdr += 1 
      return entry 
    else: 
      raise StopIteration 
 
  def __iter__(self): 
    return self
class Array2D : 
  def __init__(self, numRows, numCols): 
    self._theRows = Array(numCols) 
    for i in range(numCols): 
      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 range(self.numRows): 
      self._theRows[row].clear(value) 
 
  def __getitem__(self, ndxTuple): 
    assert len(ndxTuple) == 2, "the tuple must 2" 
    row = ndxTuple[0] 
    col = ndxTuple[1] 
    assert row>=0 and row <len(self.numRows()) \ 
    and col>=0 and col<len(self.numCols), \ 
    "array subscrpt out of range" 
    theArray = self._theRows[row] 
    return theArray[col] 
 
  def __setitem__(self, ndxTuple, value): 
    assert len(ndxTuple)==2, "the tuple must 2" 
    row = ndxTuple[0] 
    col = ndxTuple[1] 
    assert row >= 0 and row < len(self.numRows) \ 
    and col >= 0 and col < len(self.numCols), \ 
    "row and col is invalidate" 
    theArray = self._theRows[row]; 
    theArray[col] = value

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python使用xlrd读取Excel格式文件的方法
Mar 10 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python设定并获取socket超时时间的方法
Jan 12 Python
selenium+python截图不成功的解决方法
Jan 30 Python
Python开发网站目录扫描器的实现
Feb 21 Python
pymongo中group by的操作方法教程
Mar 22 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python使用minimax算法实现五子棋
Jul 29 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
python中pygame模块用法实例
Oct 09 #Python
python根据文件大小打log日志
Oct 09 #Python
python命令行参数解析OptionParser类用法实例
Oct 09 #Python
python测试驱动开发实例
Oct 08 #Python
python批量提交沙箱问题实例
Oct 08 #Python
python求pi的方法
Oct 08 #Python
python实现简单的TCP代理服务器
Oct 08 #Python
You might like
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php实现读取内存顺序号
2015/03/29 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
详解Bootstrap插件
2016/04/25 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
Puma印度官网:德国运动品牌
2019/10/06 全球购物
师范应届生教师求职信
2013/11/05 职场文书
个人应聘自我评价分享
2013/11/18 职场文书
技术总监岗位职责
2013/12/05 职场文书
未婚证明书模板
2014/10/08 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS