Deze module definieert een objecttype dat een array van basiswaarden compact kan vertegenwoordigen: karakters, gehele getallen, floating point getallen. Arrays zijn sequencetypes en gedragen zich heel erg als lijsten, behalve dat het type objecten dat in hen is opgeslagen beperkt is. Het type wordt opgegeven tijdens het maken van objecten door gebruik te maken van atype-code, wat een enkel teken is., De volgende typecodes zijn gedefinieerd:
opmerkingen:
-
Het kan 16 bits of 32 bits zijn, afhankelijk van het platform.
gewijzigd in versie 3.9: gebruikt nu
wchar_t
als C-type in plaats van verouderdPy_UNICODE
. Deze verandering heeft geen invloed op het gedrag omdatPy_UNICODE
een alias is vanwchar_t
sinds Python 3.3.verouderd sinds versie 3.3, zal worden verwijderd in versie 4.0.,
de werkelijke weergave van waarden wordt bepaald door de machinearchitectuur(strikt genomen door de C-implementatie). De werkelijke grootte kan benaderd worden via hetitemsize
attribuut.
De module definieert het volgende type:
classarray.
array
(typecode)¶
een nieuwe array waarvan de items zijn beperkt door typecode, en geïnitialiseerd van de optionele initializer waarde, die een lijst, abytes-achtige object, of iterable over elementen van het juiste type moet zijn.,
indien een lijst of tekenreeks gegeven wordt, wordt de initializer doorgegeven aan de nieuwe array ‘ sfromlist()
, frombytes()
, of fromunicode()
methode (zie hieronder)om initiële items aan de array toe te voegen. Anders wordt de iterable initializer toegevoegd aan deextend()
methode.
roept een auditgebeurtenis op array.__new__
met argumenten typecode
, initializer
.
array.
typecodes
¶
een string met alle beschikbare typecodes.,
Array-objecten ondersteunen de gewone sequentiebewerkingen van indexeren,snijden, aaneenschakelen en vermenigvuldigen. Als slice-toewijzing wordt gebruikt, moet de toegewezen waarde een array-object zijn met dezelfde typecode; in alle andere gevallen wordtTypeError
verhoogd. Array objecten implementeren ook de buffer interface,en kunnen worden gebruikt waar bytes-achtige objecten worden ondersteund.
de volgende gegevensposten en methoden worden ook ondersteund:
array.
typecode
¶
het typecode teken dat wordt gebruikt om de array aan te maken.,
array.
itemsize
¶
De lengte in bytes van één array-item in de interne representatie.
array.
append
(x)¶
voeg een nieuw item met waarde x toe aan het einde van de array.
array.
buffer_info
()¶
Geef een tupel (address, length)
die het huidige geheugenadres en de lengte geeft in elementen van de buffer die gebruikt wordt om de inhoud van de array vast te houden. De grootte van de memory buffer in bytes kan worden berekend als array.buffer_info() *array.itemsize
., Dit is soms handig bij het werken met low-level (eninherent onveilige) I/O interfaces die geheugenadressen vereisen, zoals bepaaldeioctl()
operaties. De geretourneerde nummers zijn geldig zolang de arraybestaat en er geen lengteveranderende bewerkingen op worden toegepast.
Note
bij het gebruik van array-objecten uit code geschreven in C of c++ (de enige manier om effectief gebruik te maken van deze informatie), is het zinvoller om de bufferinterface te gebruiken die door array-objecten wordt ondersteund. Deze methode wordt gehandhaafd voor backwardcompatibility en moet worden vermeden in nieuwe code., De buffer interface is gedocumenteerd in Buffer Protocol.
array.
byteswap
()¶
” Byteswap ” alle items van de array. Dit wordt alleen ondersteund voor waarden die 1, 2, 4 of 8 bytes groot zijn; voor andere soorten waarden, RuntimeError
Israëlisch. Het is nuttig wanneer het lezen van gegevens van een dossier dat op een machine met een andere byteorde wordt geschreven.
array.
count
(x)¶
retourneer het aantal keren dat x voorkomt in de array.,
array.
extend
(iterable)¶
Voeg items van iterable toe aan het einde van de array. Als iterable een andere array is, moet het precies dezelfde code hebben; zo niet, dan wordt TypeError
verhoogd. Als iterable geen array is, moet het iterable zijn en moet het element het juiste type zijn om aan de array te worden toegevoegd.
array.
frombytes
(s)¶
voegt items toe uit de tekenreeks, waarbij de tekenreeks wordt geïnterpreteerd als een array van machinevalues (alsof het was gelezen uit een bestand met behulp van de fromfile()
methode).,
nieuw in versie 3.2: fromstring()
wordt hernoemd naar frombytes()
voor de duidelijkheid.
array.
fromfile
(f, n)¶
Lees n items (als machinewaarden) van het bestand object f en appenthem tot het einde van de array. Als minder dan n items beschikbaar zijn, wordtEOFError
verhoogd, maar de items die beschikbaar waren worden nog steeds ingevoegd in de array. f moet een echt ingebouwd bestandsobject zijn; iets met eenread()
methode kan niet.,
array.
fromlist
(list)¶
voeg items toe uit de lijst. Dit is gelijk aan for x in list:a.append(x)
behalve dat als er een typefout is, de array onveranderd is.
array.
fromunicode
(s)¶
breidt deze array uit met gegevens uit de gegeven Unicode-tekenreeks. De array moet een type 'u'
array zijn; anders wordt een ValueError
verhoogd. Gebruikarray.frombytes(unicodestring.encode(enc))
om Unicode-gegevens toe te voegen aan een array van een ander type.,
array.
index
(x)¶
geeft de kleinste I zodanig terug dat i de index is van het eerste voorkomen vanX in de array.
array.
insert
(I, x)¶
plaats een nieuw item met waarde x in de array voor positie i. Negativevalues worden behandeld als relatief aan het einde van de array.
array.
pop
()¶
verwijdert het item met de index i uit de array en geeft het terug., De optionalargument staat standaard op -1
, zodat standaard het laatste item wordt verwijderd en omgekeerd.
array.
remove
(x)¶
verwijder het eerste voorkomen van x uit de array.
array.
reverse
()¶
keer de volgorde van de items in de array om.
array.
tobytes
()¶
converteer de array naar een array van machinewaarden en retourneer de bytesrepresentatie (dezelfde volgorde van bytes die naar een bestand zou worden geschreven volgens de tofile()
methode.,)
nieuw in versie 3.2: tostring()
wordt hernoemd naar tobytes()
voor de duidelijkheid.
array.
tofile
(f)¶
Write all items (as machine values) to the file object f.
array.
tolist
()¶
converteer de array naar een gewone lijst met dezelfde items.
array.
tounicode
()¶
converteer de array naar een Unicode-tekenreeks. De array moet een type 'u'
array zijn;anders wordt een ValueError
verhoogd., Gebruik array.tobytes().decode(enc)
en bewaar een Unicode-tekenreeks uit een array van een ander type.
wanneer een array-object wordt afgedrukt of geconverteerd naar een tekenreeks, wordt het weergegeven alsarray(typecode, initializer)
. De initializer wordt weggelaten als de array leeg is, anders is het een tekenreeks als de typecode 'u'
is, anders is het een lijst van getallen. De tekenreeks kan gegarandeerd worden geconverteerd naar anarray met hetzelfde type en dezelfde waarde met eval()
, zolang dearray
klasse is geïmporteerd met from array import array
.,Voorbeelden:
array('l')array('u', 'hello \u2641')array('l', )array('d', )
zie ook
Modulestruct
verpakken en uitpakken van heterogene binaire gegevens.
Module xdrlib
verpakken en uitpakken van externe Gegevensrepresentatie (XDR) zoals gebruikt in someremote procedure oproepsystemen.
De numerieke Python documentatie
De numerieke Python extensie (NumPy) definieert een ander array type; ziehttp://www.numpy.org/ voor meer informatie over numerieke Python.