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冒泡排序算法的实现代码
Nov 21 Python
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python中扩展包的安装方法详解
Jun 14 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
彻底理解Python中的yield关键字
Apr 01 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
python opencv 实现对图像边缘扩充
Jan 19 Python
django API 中接口的互相调用实例
Apr 01 Python
解决reload(sys)后print失效的问题
Apr 25 Python
keras中的History对象用法
Jun 19 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
Linux系统下升级pip的完整步骤
Jan 31 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 autoload机制的详解
2013/06/09 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Js基础学习资料
2010/11/23 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
Vue的Options用法说明
2020/08/14 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python的文件操作方法汇总
2017/11/10 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
django2 快速安装指南分享
2018/01/05 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
用Python 执行cmd命令
2020/12/18 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
运动会入场词100字
2014/02/06 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫