Numeeristen arvojen Python-taulukko

Tässä opetusohjelmassa opit Python-matriisimoduulista, taulukoiden ja luetteloiden eroista sekä siitä, miten ja milloin niitä käytetään esimerkkien avulla.

Huomaa: Kun ihmiset sanovat matriiseja Pythonissa, he puhuvat useammin kuin ei, he puhuvat Python-luetteloista . Jos näin on, käy Python-luettelon opetusohjelmassa.

Tässä opetusohjelmassa keskitymme moduuliin nimeltä array. arrayModuuli antaa meille mahdollisuuden tallentaa kokoelma numeerisia arvoja.

Python-taulukoiden luominen

Numeeristen arvojen taulukon luomiseksi meidän on tuotava arraymoduuli. Esimerkiksi:

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

Tuotos

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

Tässä loimme tyyppiryhmän float. Kirjain don tyyppikoodi. Tämä määrittää taulukon tyypin luomisen aikana.

Yleisesti käytetyt tyyppikoodit on lueteltu seuraavasti:

Koodi C Tyyppi Python-tyyppi Pienimmät tavut
b allekirjoitettu merkki int 1
B allekirjoittamaton merkki int 1
u Py_UNICODE Unicode 2
h allekirjoitettu lyhyeksi int 2
H allekirjoittamaton lyhyt int 2
i allekirjoitettu kansainvälinen int 2
I allekirjoittamaton int int 2
l allekirjoitettu pitkään int 4
L allekirjoittamaton pitkä int 4
f kellua kellua 4
d kaksinkertainen kellua 8

Emme keskustele eri C-tyyppeistä tässä artikkelissa. Käytämme kahta tyyppikoodia tässä koko artikkelissa: ikokonaislukuihin ja dkellukkeisiin.

Huomaa : uUnicode-merkkien tyyppikoodi on vanhentunut version 3.3 jälkeen. Vältä käyttämästä niin paljon kuin mahdollista.

Python-taulukkoelementtien käyttö

Käytämme indeksejä päästäksesi matriisin elementteihin:

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

Tuotos

 Ensimmäinen elementti: 2 Toinen elementti: 4 Viimeinen elementti: 8

Huomaa : Hakemisto alkaa 0: sta (ei 1), joka on samanlainen kuin luettelot.

Viipalointi Python-taulukot

Voimme käyttää joukkoa kohteita ryhmässä viipalointioperaattorin avulla :.

 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

Tuotos

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

Elementtien muuttaminen ja lisääminen

Taulukot ovat muutettavissa; niiden elementtejä voidaan muuttaa samalla tavalla kuin luetteloita.

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

Tuotos

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

Voimme lisätä yhden kohteen matriisiin append()menetelmän avulla tai lisätä useita kohteita extend()menetelmällä.

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

Tuotos

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

Voimme myös ketjuttaa kaksi matriisia +operaattorilla.

 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)

Tuotos

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

Python-taulukon elementtien poistaminen

Voimme poistaa yhden tai useamman kohteen taulukosta käyttämällä Pythonin del-käskyä.

 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

Tuotos

 array ('i', (1, 2, 3, 4)) Traceback (viimeisin puhelu viimeisin): Tiedosto "", rivi 9, tulostettuna (numero) # Virhe: taulukkoa ei ole määritetty NameError: name 'number' is ei määritelty

Voimme käyttää remove()menetelmää annetun kohteen pop()poistamiseen ja menetelmää kohteen poistamiseen annetusta hakemistosta.

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

Tuotos

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

Tarkista tämä sivu saadaksesi lisätietoja Python-taulukko- ja matriisimenetelmistä.

Python luetteloi Vs-taulukot

Pythonissa voimme käsitellä luetteloita taulukkoina. Emme kuitenkaan voi rajoittaa luetteloon tallennettujen elementtien tyyppiä. Esimerkiksi:

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

Jos luot taulukoita arraymoduulin avulla, taulukon kaikkien elementtien on oltava samaa numerotyyppiä.

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

Tuotos

 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.

Jos et todellakaan tarvitse matriiseja (matriisimoduulia voidaan tarvita C-koodiin liittymiseen), matriisimoduulin käyttöä ei suositella.

Mielenkiintoisia artikkeleita...