배열은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!