>  기사  >  백엔드 개발  >  Python에서 배열 배열 모듈의 관련 용도

Python에서 배열 배열 모듈의 관련 용도

不言
不言원래의
2018-04-16 17:03:052126검색

배열은 Python에 내장된 표준 데이터 구조는 아니지만 배열 모듈을 사용하면 Python에서 배열 구조를 사용할 수도 있습니다. 아래에서는 Python

초기화
배열 인스턴스화에서 배열 배열 모듈의 사용에 대해 자세히 설명합니다. 허용되는 데이터 유형을 설명하는 매개변수를 제공할 수 있으며 배열에 저장된 데이터의 초기 시퀀스를 가질 수도 있습니다.

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)

배열은 간단한 문자열로 초기화된 일련의 바이트를 포함하도록 구성됩니다.

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


배열 처리
다른 Python 시퀀스와 마찬가지로 배열도 같은 방식으로 확장하고 처리할 수 있습니다.

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)]


배열 및 파일
파일의 효율적인 읽기/쓰기를 위해 내장된 전용 메서드를 사용하여 배열의 내용을 파일에 쓰거나 파일에서 배열을 읽을 수 있습니다.

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

Candidate Byte Order
배열의 데이터가 고유한 바이트 순서를 사용하지 않거나 다른 바이트 순서를 사용하는 시스템으로 보내기 전에 순서를 교환해야 하는 경우 다음을 수행할 수 있습니다. python을 사용하여 각 요소를 반복하지 않고 전체 배열을 변환합니다.

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()은 C 배열 요소의 바이트 순서를 바꾸는데, 이는 Python에서 데이터를 반복하는 것보다 훨씬 효율적입니다.​

>>> ================================ 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


위 내용은 Python에서 배열 배열 모듈의 관련 용도의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.