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 20 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python GUI编程完整示例
Apr 04 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
详解python播放音频的三种方法
Sep 23 Python
python3用urllib抓取贴吧邮箱和QQ实例
Mar 10 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
Python预测2020高考分数和录取情况
Jul 08 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
python中tkinter复选框使用操作
Nov 11 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/06/04 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
几种响应式文字详解
2017/05/19 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python中使用不同编码读写txt文件详解
2015/05/28 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
python 实现简单的FTP程序
2019/12/27 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
给导游的表扬信
2014/01/10 职场文书
英文导游欢迎词
2014/01/11 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
求职信怎么写
2014/05/23 职场文书
如何写早恋检讨书
2014/09/10 职场文书
草房子读书笔记
2015/06/29 职场文书
关于军训的感想
2015/08/07 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
Python字典的基础操作
2021/11/01 Python
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技