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 10 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Python对List中的元素排序的方法
Apr 01 Python
Django中使用Celery的方法示例
Nov 29 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
详解Python打包分发工具setuptools
Aug 05 Python
python 导入数据及作图的实现
Dec 03 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
python可视化之颜色映射详解
Sep 15 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 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php防盗链的常用方法小结
2010/07/02 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
PHP多进程编程实例
2014/10/15 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
PDO实现学生管理系统
2020/03/21 PHP
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
深入理解vue Render函数
2017/07/19 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
详解Python中的循环语句的用法
2015/04/09 Python
python+Django+apache的配置方法详解
2016/06/01 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
违反课堂纪律检讨书
2014/01/19 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
环保守法证明
2015/06/24 职场文书