Skaitlisko vērtību Python masīvs

Šajā apmācībā jūs uzzināsit par Python masīva moduli, atšķirību starp masīviem un sarakstiem un to, kā un kad tos izmantot, izmantojot piemērus.

Piezīme: Kad cilvēki saka masīvus Python, viņi biežāk runā par Python sarakstiem . Ja tas tā ir, apmeklējiet Python saraksta apmācību.

Šajā apmācībā mēs koncentrēsimies uz moduli ar nosaukumu array. arrayModulis ļauj mums uzglabāt kolekciju skaitliskām vērtībām.

Python masīvu izveide

Lai izveidotu skaitlisko vērtību masīvu, mums ir jāimportē arraymodulis. Piemēram:

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

Rezultāts

 masīvs ('d', (1.1, 3.5, 4.5))

Šeit mēs izveidojām floattipa masīvu . Burts dir tipa kods. Tas nosaka masīva veidu izveidošanas laikā.

Parasti izmantotie tipa kodi ir uzskaitīti šādi:

Kods C tips Python tips Min. Baiti
b parakstīts char int 1
B neparakstīta char int 1
u Py_UNICODE Unicode 2
h parakstīts īss int 2
H neparakstīts īss int 2
i parakstīts int int 2
I neparakstīts int int 2
l parakstīts ilgi int 4
L neparakstīts ilgi int 4
f peldēt peldēt 4
d dubultā peldēt 8

Šajā rakstā mēs neapspriedīsim dažādus C tipus. Šajā visā rakstā mēs izmantosim divu veidu kodus: iveseliem skaitļiem un dpludiņiem.

Piezīme : uUnicode rakstzīmju tipa kods ir novecojis kopš 3.3 versijas. Izvairieties izmantot pēc iespējas vairāk.

Piekļuve Python masīva elementiem

Mēs izmantojam indeksus, lai piekļūtu masīva elementiem:

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

Rezultāts

 Pirmais elements: 2 Otrais elements: 4 Pēdējais elements: 8

Piezīme : Indekss sākas ar 0 (nevis 1), kas līdzīgs sarakstiem.

Python masīvu sagriešana

Mēs varam piekļūt masīva vienumu klāstam, izmantojot sagriešanas operatoru :.

 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

Rezultāts

 masīvs ('i', (62, 5, 42)) masīvs ('i', (2, 5, 62)) masīvs ('i', (52, 48, 5)) masīvs ('i', (2 (5, 62, 5, 42, 52, 48, 5)

Elementu maiņa un pievienošana

Masīvi ir maināmi; to elementus var mainīt līdzīgi kā sarakstus.

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

Rezultāts

 masīvs ('i', (0, 2, 3, 5, 7, 10)) masīvs ('i', (0, 2, 4, 6, 8, 10))

Mēs varam pievienot masīvam vienu vienumu, izmantojot append()metodi, vai pievienot vairākus vienumus, izmantojot extend()metodi.

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

Rezultāts

 masīvs ('i', (1, 2, 3, 4)) masīvs ('i', (1, 2, 3, 4, 5, 6, 7))

Izmantojot +operatoru, mēs varam arī savienot divus masīvus .

 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)

Rezultāts

 masīvs ('i', (1, 3, 5, 2, 4, 6)) 

Python masīva elementu noņemšana

Mēs varam izdzēst vienu vai vairākus vienumus no masīva, izmantojot Python del paziņojumu.

 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

Rezultāts

 masīvs ('i', (1, 2, 3, 4)) Traceback (pēdējais zvans pēdējais): Fails "", 9. rinda, drukā (numurs) # Kļūda: masīvs nav definēts NameError: name 'number' is nav definēts

Mēs varam izmantot remove()metodi, lai noņemtu doto vienumu, un pop()metodi, lai noņemtu vienumu no norādītā indeksa.

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

Rezultāts

 masīvs ('i', (10, 11, 12, 13)) 12 masīvs ('i', (10, 11, 13))

Pārbaudiet šo lapu, lai uzzinātu vairāk par Python masīva un masīva metodēm.

Python saraksti Vs masīvi

Python mēs varam traktēt sarakstus kā masīvus. Tomēr mēs nevaram ierobežot sarakstā saglabāto elementu tipu. Piemēram:

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

Ja veidojat masīvus, izmantojot arraymoduli, visiem masīva elementiem jābūt vienādam ar ciparu tipu.

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

Rezultāts

 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.

Ja vien jums patiešām nav nepieciešami masīvi (masīva modulis var būt nepieciešams, lai saskarētos ar C kodu), masīva moduļa lietošana nav ieteicama.

Interesanti raksti...