denna modul definierar en objekttyp som kompakt kan representera en array ofbasic värden: tecken, heltal, flyttal. Arrayer är sekvenstyper och beter sig väldigt mycket som listor, förutom att typen av objekt som lagras inthem är begränsad. Typen anges vid objektskapande tid genom att använda atype-kod, vilket är ett enda tecken., Följande typkoder ärdefinierade:
anmärkningar:
-
det kan vara 16 bitar eller 32 bitar beroende på plattformen.
ändrad i version 3.9:
array('u')
använder nuwchar_t
som C-typ istället för föråldradPy_UNICODE
. Denna ändring påverkar inte dess beteende eftersomPy_UNICODE
är alias förwchar_t
sedan Python 3.3.föråldrad sedan version 3.3, Kommer att tas bort i version 4.0.,
den faktiska representationen av värden bestäms av maskinarkitekturen(strängt taget genom C-implementeringen). Den faktiska storleken kan nås via attributet itemsize
.
Den modulen definierar följande typ:
klassarray.
array
(typecode)¶
En ny array vars objekt är bundet av typecode, och initializedfrom tillval initializer-värdet, som måste vara en lista, abytes-liknande objekt, eller iterable över delar av theappropriate typ.,
om en lista eller sträng anges skickas initialisatorn till den nya matrisensfromlist()
,frombytes()
ellerfromunicode()
– metod (se nedan)för att lägga till inledande objekt i matrisen. I annat fall är den iterable initializerpasserad till extend()
– metoden.
höjer en revisionshändelse array.__new__
med argument typecode
, initializer
.
array.
typecodes
¶
en sträng med alla tillgängliga typkoder.,
Array-objekt stöder de vanliga sekvensoperationerna för indexering, skivning,sammanslagning och multiplikation. Vid användning av slice-tilldelning måste tilldelningsvärdet vara ett matrisobjekt med samma typkod; i alla andra fall höjsTypeError
. Arrayobjekt implementerar också buffertgränssnittet och kan användas varhelst byte – liknande objekt stöds.
följande dataposter och metoder stöds också:
array.
typecode
¶
typecode-tecknet som används för att skapa matrisen.,
array.
itemsize
¶
längden i byte av ett arrayobjekt i den interna representationen.
array.
append
(x)¶
Lägg till ett nytt objekt med värde x till slutet av matrisen.
array.
buffer_info
()¶
returnera en tuple(address, length)
ger aktuell minnesadress ochlängd i delar av bufferten som används för att hålla arrays innehåll. Storleken på thememory buffer i byte kan beräknas som array.buffer_info() *array.itemsize
., Detta är ibland användbart när man arbetar med lågnivå (ochoförsiktigt osäkra) I/O-gränssnitt som kräver minnesadresser, till exempel vissaioctl()
– operationer. De returnerade numren är giltiga så länge arrayexisterar och inga längdändrande operationer tillämpas på den.
Obs
När du använder arrayobjekt från kod skrivna i C eller c++ (det enda sättet att effektivt använda denna information) är det mer meningsfullt att använda buffertinterface som stöds av arrayobjekt. Denna metod bibehålls för bakåtkompatibilitet och bör undvikas i ny kod., Buffertgränssnittet ärdokumenterat i Buffertprotokollet.
array.
byteswap
()¶
”Byteswap” alla objekt i matrisen. Detta stöds endast för värden som är1, 2, 4 eller 8 byte i storlek; för andra typer av värden, RuntimeError
israised. Det är användbart när du läser data från en fil skriven på en maskin med adifferenta byte ordning.
array.
count
(x)¶
returnera antalet förekomster av x i matrisen.,
array.
extend
(iterable)¶
Lägg till objekt från iterable till slutet av matrisen. Om det är möjligt att använda en annanarray måste den ha exakt samma typkod; om inte, kommerTypeError
att höjas. Om det inte är en array, måste det vara möjligt och dess elementmåste vara rätt typ som ska bifogas matrisen.
array.
frombytes
(s)¶
lägger till objekt från strängen, tolkar strängen som en matris av maskinevalues (som om den hade lästs från en fil med metodenfromfile()
).,
nytt i version 3.2:fromstring()
byts namn tillfrombytes()
för tydlighetens skull.
array.
fromfile
(f, n)¶
Läs n-objekt (som maskinvärden) från filobjektet f och appendthem till slutet av matrisen. Om mindre än N-objekt är tillgängliga, höjsEOFError
, men de objekt som var tillgängliga finns fortfarande i matrisen. f måste vara ett riktigt inbyggt filobjekt; somethingelse med enread()
– metod kommer inte att göra.,
array.
fromlist
(lista)¶
Lägg till objekt från listan. Detta motsvarar for x in list:a.append(x)
förutom att om det finns ett typfel är matrisen oförändrad.
array.
fromunicode
(s)¶
utökar denna array med data från den givna Unicode-strängen. Matrisen måste vara en typ 'u'
array; annars höjs en ValueError
. Användaarray.frombytes(unicodestring.encode(enc))
för att lägga till Unicode-data till anarray av någon annan typ.,
array.
index
(x)¶
returnera den minsta i så att jag är indexet för den första förekomsten ofx i matrisen.
array.
insert
(I, x)¶
sätt in ett nytt objekt med värde x i matrisen före position i. Negativavärden behandlas som relativa till slutet av matrisen.
array.
pop
()¶
tar bort objektet med index i från matrisen och returnerar det., Optionalargument är som standard-1
, så att det sista objektet som standard tas bort ochåtervänds.
array.
remove
(x)¶
Ta bort den första förekomsten av x från matrisen.
array.
reverse
()¶
ändra ordningen på objekten i matrisen.
array.
tobytes
()¶
konvertera matrisen till en matris med maskinvärden och returnera bytesrepresentation (samma sekvens av byte som skulle skrivas till en fil med metodentofile()
.,)
nytt i version 3.2:tostring()
bytt namn tilltobytes()
för tydlighetens skull.
array.
tofile
(f)¶
skriv alla objekt (som maskinvärden) till filobjektet f.
array.
tolist
()¶
konvertera matrisen till en vanlig lista med samma objekt.
array.
tounicode
()¶
konvertera matrisen till en Unicode-sträng. Matrisen måste vara en typ 'u'
array;annars höjs en ValueError
., Användarray.tobytes().decode(enc)
toobtain en Unicode-sträng från en array av någon annan typ.
När ett matrisobjekt skrivs ut eller konverteras till en sträng representeras det somarray(typecode, initializer)
. Initialiseraren utelämnas om matrisen isempty, annars är det en sträng om typekoden är 'u'
, annars är det en lista över siffror. Strängen garanteras kunna konverteras tillbaka till anarray med samma typ och värde med eval()
, så länge klassenarray
har importerats med from array import array
.,Exempel:
array('l')array('u', 'hello \u2641')array('l', )array('d', )
Se även
modulstruct
packning och uppackning av heterogena binära data.
modul xdrlib
packning och uppackning av extern datarepresentation (XDR) data som används i someremote procedure call systems.
Numeriska Dokumentation Python
Den Numeriska Python förlängning (NumPy) definierar en annan array typ; http://www.numpy.org/ för mer information om Numerical Python.