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中sleep函数用法实例分析
Apr 29 Python
详解Python的Django框架中的中间件
Jul 24 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
Python selenium如何设置等待时间
Sep 15 Python
Django权限机制实现代码详解
Feb 05 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
pandas计数 value_counts()的使用
Jun 24 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
如何用PHP实现插入排序?
2013/04/10 PHP
载入进度条 效果
2006/07/08 Javascript
在视频前插入广告
2006/11/20 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
puppeteer库入门初探
2019/01/09 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python数据类型之List列表实例详解
2019/05/08 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
Python中有几个关键字
2020/06/04 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
优秀团员个人的自我评价
2013/10/02 职场文书
24岁生日感言
2014/01/13 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
幼儿园招生广告
2014/03/19 职场文书
班长竞选演讲稿
2014/04/24 职场文书
如何写求职信
2014/05/24 职场文书
假面舞会策划方案
2014/05/29 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
学生检讨书范文
2014/10/30 职场文书
龙猫观后感
2015/06/09 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
vue使用echarts实现折线图
2022/03/21 Vue.js
把77A收信机改造成收音机
2022/04/05 无线电