欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python中的array數(shù)組模塊相關(guān)使用

 更新時(shí)間:2016年07月05日 18:12:33   作者:lucifercn  
數(shù)組并不是Python中內(nèi)置的標(biāo)配數(shù)據(jù)結(jié)構(gòu),不過(guò)擁有array模塊我們也可以在Python中使用數(shù)組結(jié)構(gòu),下面我們就來(lái)詳解詳解Python中的array數(shù)組模塊相關(guān)使用

初始化
array實(shí)例化可以提供一個(gè)參數(shù)來(lái)描述允許那種數(shù)據(jù)類(lèi)型,還可以有一個(gè)初始的數(shù)據(jù)序列存儲(chǔ)在數(shù)組中。

import array
import binascii
s = 'This is the array.'
a = array.array('c', s)
print 'As string:', s
print 'As array :', a
print 'As hex  :', binascii.hexlify(a)

數(shù)組配置為包含一個(gè)字節(jié)序列,用一個(gè)簡(jiǎn)單的字符串初始化。

>>> ================================ RESTART ================================
>>> 
As string: This is the array.
As array : array('c', 'This is the array.')
As hex  : 54686973206973207468652061727261792e


處理數(shù)組
類(lèi)似于其他python序列,可以采用同樣方式擴(kuò)展和處理array。

import array
import pprint
a = array.array('i', xrange(3))
print 'Initial :', a
a.extend(xrange(3))
print 'Extended:', a
print 'slice: :', a[2:5]
print 'Itetator:'
print list(enumerate(a))

支持的操作包括分片,迭代以及向末尾增加元素。

>>> ================================ RESTART ================================
>>> 
Initial : array('i', [0, 1, 2])
Extended: array('i', [0, 1, 2, 0, 1, 2])
slice: : array('i', [2, 0, 1])
Itetator:
[(0, 0), (1, 1), (2, 2), (3, 0), (4, 1), (5, 2)]


數(shù)組和文件
可以使用高效讀/寫(xiě)文件的專(zhuān)用內(nèi)置方法將數(shù)組的內(nèi)容寫(xiě)入文件或從文件讀取數(shù)組。

import array
import binascii
import tempfile

a = array.array('i', xrange(5))
print 'A1: ',a
output = tempfile.NamedTemporaryFile()
a.tofile(output.file)
output.flush

with open(output.name, 'rb') as input:
  raw_input = input.read()
  print 'Raw Contents:', binascii.hexlify(raw_data)

  input.seek(0)
  a2 = array.array('i')
  a2.fromfile(input, len(a))
  print 'A2: ', a2

   

候選字節(jié)順序
如果數(shù)組中的數(shù)據(jù)沒(méi)有采用固有的字節(jié)順序,或者在發(fā)送到一個(gè)采用不同字節(jié)順序的系統(tǒng)前需要交換順序,可以在python轉(zhuǎn)換整個(gè)數(shù)組而無(wú)須迭代處理每個(gè)元素。

import array
import binascii

def to_hex(a):
  chars_per_item = a.itemsize * 2
  hex_version = binascii.hexlify(a)
  num_chunks = len(hex_version) / chars_per_item
  for i in xrange(num_chunks):
    start = i * chars_per_item
    end = start + chars_per_item
    yield hex_version[start:end]

a1 = array.array('i', xrange(5))
a2 = array.array('i', xrange(5))
a2.byteswap()

fmt = '%10s %10s %10s %10s'
print fmt % ('A1_hex', 'A1', 'A2_hex', 'A2')
print fmt % (('-' * 10,) * 4)
for value in zip(to_hex(a1), a1, to_hex(a2), a2):
  print fmt % value

byteswap()會(huì)交換C數(shù)組中元素的字節(jié)順序,比在python中循環(huán)處理數(shù)據(jù)高效的多。   

>>> ================================ RESTART ================================
>>> 
  A1_hex     A1   A2_hex     A2
---------- ---------- ---------- ----------
 00000000     0  00000000     0
 01000000     1  00000001  16777216
 02000000     2  00000002  33554432
 03000000     3  00000003  50331648
 04000000     4  00000004  67108864

相關(guān)文章

  • pycharm查看變量值的4種方法匯總

    pycharm查看變量值的4種方法匯總

    因?yàn)镻ython是腳本語(yǔ)言,不會(huì)進(jìn)行編譯,所以只有執(zhí)行到那一行,才能知道那個(gè)變量的類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于pycharm查看變量值的4種方法,需要的朋友可以參考下
    2022-04-04
  • python中map()函數(shù)使用方法詳解

    python中map()函數(shù)使用方法詳解

    map( )函數(shù)在算法題目里面經(jīng)常出現(xiàn),map( )會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射,在寫(xiě)返回值等需要轉(zhuǎn)換的時(shí)候比較常用。這篇文章主要介紹了Python中 map()的用法,需要的朋友可以參考下
    2021-08-08
  • python3 如何解壓縮.gz文件

    python3 如何解壓縮.gz文件

    這篇文章主要介紹了python3 如何解壓縮.gz文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python從入門(mén)到精通(DAY 3)

    python從入門(mén)到精通(DAY 3)

    本文是python從入門(mén)到精通系列文章的第三篇,主要是給大家講訴做的一個(gè)編寫(xiě)登陸接口練習(xí)程序的全過(guò)程,非常的細(xì)致,有需要的小伙伴可以參考下。
    2015-12-12
  • python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版

    python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版

    這篇文章主要為大家詳細(xì)介紹了python面向?qū)ο髮?shí)現(xiàn)名片管理系統(tǒng)文件版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 利用Python腳本批量生成SQL語(yǔ)句

    利用Python腳本批量生成SQL語(yǔ)句

    這篇文章主要介紹了利用Python腳本批量生成SQL語(yǔ)句,具有很好對(duì)參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python入門(mén)必須知道的11個(gè)知識(shí)點(diǎn)

    Python入門(mén)必須知道的11個(gè)知識(shí)點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了Python入門(mén)必須知道的11個(gè)知識(shí)點(diǎn),幫助更好地了解python,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python基礎(chǔ)之并發(fā)編程(三)

    python基礎(chǔ)之并發(fā)編程(三)

    這篇文章主要介紹了詳解python的并發(fā)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • pytorch如何實(shí)現(xiàn)多個(gè)矩陣拼接

    pytorch如何實(shí)現(xiàn)多個(gè)矩陣拼接

    這篇文章主要介紹了pytorch如何實(shí)現(xiàn)多個(gè)矩陣拼接問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python人工智能構(gòu)建簡(jiǎn)單聊天機(jī)器人示例詳解

    Python人工智能構(gòu)建簡(jiǎn)單聊天機(jī)器人示例詳解

    這篇文章主要為大家介紹了Python人工智能構(gòu)建簡(jiǎn)單聊天機(jī)器人示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論