Numbriliste väärtuste Pythoni massiiv

Selles õpetuses saate näidete abil teada Pythoni massiivmoodulist, erinevusest massiividel ja loenditel ning nende kasutamisest ja ajast.

Märkus. Kui inimesed ütlevad Pythonis massiive, räägivad nad sagedamini Pythoni loenditest . Sel juhul külastage Pythoni loendi õpetust.

Selles õpetuses keskendume moodulile nimega array. arrayMoodul võimaldab meil säilitada kogumik arvväärtusi.

Pythoni massiivide loomine

Numbriliste väärtuste massiivi loomiseks peame arraymooduli importima . Näiteks:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Väljund

 massiiv ('d', (1.1, 3.5, 4.5))

Siin lõime massiivi floattüüpi. Täht don tüübikood. See määrab loomise ajal massiivi tüübi.

Tavaliselt kasutatavad tüübikoodid on loetletud järgmiselt:

Kood C tüüp Pythoni tüüp Min baiti
b allkirjastatud char int 1
B allkirjastamata süsi int 1
u Py_UNICODE Unicode 2
h allkirjastatud lühike int 2
H allkirjastamata lühike int 2
i allkirjastatud int int 2
I allkirjastamata int int 2
l allkirjastatud pikk int 4
L allkirjastamata pikk int 4
f ujuk ujuk 4
d topelt ujuk 8

Me ei käsitle selles artiklis erinevaid C-tüüpe. Selles artiklis kasutame kahte tüüpi koodi: itäisarvude ja dujukite jaoks.

Märkus . uUnicode'i märkide tüübikood on alates versioonist 3.3 aegunud. Vältige võimalikult palju kasutamist.

Juurdepääs Pythoni massiivi elementidele

Massiivi elementidele juurdepääsemiseks kasutame indekseid:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Väljund

 Esimene element: 2 Teine element: 4 Viimane element: 8

Märkus . Indeks algab 0-st (mitte 1), mis sarnaneb loenditega.

Viilutamine Pythoni massiivid

Saame juurdepääsu massiivi üksustele, kasutades viilutamisoperaatorit :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Väljund

 array ('i', (62, 5, 42)) array ('i', (2, 5, 62)) array ('i', (52, 48, 5)) array ('i', (2) (5, 62, 5, 42, 52, 48, 5)

Elementide muutmine ja lisamine

Massiivid on muudetavad; nende elemente saab muuta sarnaselt loenditega.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Väljund

 massiiv ('i', (0, 2, 3, 5, 7, 10)) massiiv ('i', (0, 2, 4, 6, 8, 10))

Võime append()meetodi abil massiivi lisada ühe üksuse või meetodi abil lisada mitu üksust extend().

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Väljund

 massiiv ('i', (1, 2, 3, 4)) massiiv ('i', (1, 2, 3, 4, 5, 6, 7))

Samuti võime +operaatori abil liita kaks massiivi .

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Väljund

 massiiv ('i', (1, 3, 5, 2, 4, 6) 

Pythoni massiivi elementide eemaldamine

Saame massiivi ühe või mitu üksust kustutada, kasutades Pythoni del-lauset.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Väljund

 array ('i', (1, 2, 3, 4)) Traceback (viimane kõne viimati): fail "", rida 9, trükitud (number) # tõrge: massiivi pole määratletud NameError: name 'number' is ei ole defineeritud

Saame kasutada remove()meetodit antud üksuse pop()eemaldamiseks ja meetodit üksuse eemaldamiseks antud indeksis.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Väljund

 massiiv ('i', (10, 11, 12, 13)) 12 massiiv ('i', (10, 11, 13))

Sellelt lehelt leiate lisateavet Pythoni massiivi ja massiivi meetodite kohta.

Python loetleb massiive

Pythonis võime loendeid käsitleda massiividena. Kuid me ei saa piirata loendis salvestatud elementide tüüpi. Näiteks:

 # elements of different types a = (1, 3.5, "Hello") 

Kui loote massiivid arraymooduli abil, peavad kõik massiivi elemendid olema sama numbritüübiga.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Väljund

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

Kui te ei vaja tegelikult massiive (C-koodiga liidestamiseks võib vaja minna massiivimoodulit), pole massiivimooduli kasutamine soovitatav.

Huvitavad Artiklid...