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通过smpt发送邮件的方法
Apr 30 Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
python实现弹窗祝福效果
Apr 07 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
Python zip函数打包元素实例解析
Dec 11 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
Python reques接口测试框架实现代码
Jul 28 Python
Python批量修改xml的坐标值全部转为整数的实例代码
Nov 26 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
vue mounted组件的使用
2018/06/18 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
django之常用命令详解
2016/06/30 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
python常用排序算法的实现代码
2019/11/08 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
户外拓展训练感想
2015/08/07 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android