Python數(shù)據(jù)結(jié)構(gòu)之Array用法實(shí)例
更新時(shí)間:2014年10月09日 11:03:22 投稿:shichen2014
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之Array用法實(shí)例,較為詳細(xì)的講述了Array的常見(jiàn)用法,具有很好的參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了python數(shù)據(jù)結(jié)構(gòu)之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
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- python實(shí)現(xiàn)每次處理一個(gè)字符的三種方法
- Python正則表達(dá)式匹配ip地址實(shí)例
- python中pygame模塊用法實(shí)例
- python根據(jù)文件大小打log日志
- python命令行參數(shù)解析OptionParser類用法實(shí)例
- python測(cè)試驅(qū)動(dòng)開(kāi)發(fā)實(shí)例
- python批量提交沙箱問(wèn)題實(shí)例
- python求pi的方法
- python實(shí)現(xiàn)簡(jiǎn)單的TCP代理服務(wù)器
- python操作CouchDB的方法
- python基于queue和threading實(shí)現(xiàn)多線程下載實(shí)例
- python中二維陣列的變換實(shí)例
相關(guān)文章
淺談pandas中DataFrame關(guān)于顯示值省略的解決方法
下面小編就為大家分享一篇淺談pandas中DataFrame關(guān)于顯示值省略的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
詳解Pandas與openpyxl庫(kù)的超強(qiáng)結(jié)合
Pandas絕對(duì)是Python中處理Excel最快、最好用的庫(kù),但是使用 openpyxl 的一些優(yōu)勢(shì)是能夠輕松地使用樣式、條件格式等自定義電子表格,感興趣的可以了解一下2021-09-09
Python+Redis從零打造分布式鎖實(shí)戰(zhàn)示例
Redis作為一款高性能的內(nèi)存鍵值數(shù)據(jù)庫(kù),憑借其支持原子操作、高并發(fā)和數(shù)據(jù)持久化等特性,非常適合用來(lái)實(shí)現(xiàn)分布式鎖,本文將詳細(xì)探討如何使用Python結(jié)合Redis從簡(jiǎn)單到復(fù)雜地實(shí)現(xiàn)分布式鎖,并提供相應(yīng)的示例代碼2024-01-01
基于Python實(shí)現(xiàn)圍棋游戲的示例代碼
今天給大家?guī)?lái)一期圍棋的源碼分享。下面我們先看看效果。游戲進(jìn)去默認(rèn)為九路玩法,當(dāng)然也可以選擇十三路或是十九路玩法,感興趣的可以了解一下2022-05-05
Pandas index操作索引的實(shí)現(xiàn)
Pandas中的索引index用于選擇特定的行數(shù)和列數(shù),加快數(shù)據(jù)訪問(wèn)速度,本文就來(lái)介紹一下index操作索引,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
淺談pyqt5中信號(hào)與槽的認(rèn)識(shí)
這篇文章主要介紹了淺談pyqt5中信號(hào)與槽的認(rèn)識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

