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之永远强大的函数
Sep 14 Python
跟老齐学Python之重回函数
Oct 10 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
Python 正则表达式的高级用法
Dec 04 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
numpy matrix和array的乘和加实例
Jun 28 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
python保留小数位的三种实现方法
Jan 07 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python中pow函数用法及功能说明
Dec 04 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学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
js操作二级联动实现代码
2010/07/27 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
Python文件和目录操作详解
2015/02/08 Python
python数据结构之图的实现方法
2015/07/08 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
商务英语应届生自我鉴定
2013/12/08 职场文书
洗发露广告词
2014/03/14 职场文书
小学见习报告
2014/10/31 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
创业计划书之家教中心
2019/09/25 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android