Pole číselných hodnôt v jazyku Python

V tomto výučbe sa pomocou príkladov dozviete o module poľa Python, rozdieloch medzi poľami a zoznamami a o tom, ako a kedy ich použiť.

Poznámka: Keď ľudia hovoria polia v Pythone, najčastejšie hovoria o zoznamoch Pythonu . Ak je to váš prípad, navštívte výukový program pre zoznam Python.

V tejto príručke sa zameriame na modul s názvom array. arrayModul nám umožňuje uložiť súbor číselných hodnôt.

Vytvára sa pole Python

Aby sme vytvorili pole číselných hodnôt, musíme arraymodul importovať . Napríklad:

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

Výkon

 pole ('d', (1,1; 3,5; 4,5))

Tu sme vytvorili pole floattypu. Písmeno dje typový kód. Toto určuje typ poľa počas vytvárania.

Bežne používané kódy typov sú uvedené takto:

Zákonníka Typ C Typ Pythonu Min. Bajtov
b podpísaný znak int 1
B nepodpísaný znak int 1
u Py_UNICODE Unicode 2
h podpísané krátke int 2
H nepodpísané krátke int 2
i podpísaná int int 2
I nepodpísané int int 2
l podpísaná dlho int 4
L nepodpísaný dlho int 4
f plavák plavák 4
d dvojitý plavák 8

V tomto článku nebudeme rozoberať rôzne typy C. V celom tomto článku použijeme dva typy kódov: ipre celé čísla a dpre plaváky.

Poznámka : uTypový kód pre znaky Unicode je zastaraný od verzie 3.3. Vyhýbajte sa použitiu čo najviac.

Prístup k prvkom poľa Python

Na prístup k prvkom poľa používame indexy:

 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ýkon

 Prvý prvok: 2 Druhý prvok: 4 Posledný prvok: 8

Poznámka : Index začína od 0 (nie 1) podobne ako zoznamy.

Krájanie polí Pythonu

K množstvu položiek v poli môžeme získať prístup pomocou operátora krájania :.

 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ýkon

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

Zmena a pridanie prvkov

Polia sú premenlivé; ich prvky je možné meniť podobným spôsobom ako zoznamy.

 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ýkon

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

Môžeme pridať jednu položku do poľa pomocou append()metódy, alebo pridať niekoľko položiek pomocou extend()metódy.

 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ýkon

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

Môžeme tiež zreťaziť dve polia pomocou +operátora.

 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ýkon

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

Odstránenie prvkov poľa Python

Môžeme vymazať jednu alebo viac položiek z poľa pomocou príkazu del v jazyku Python.

 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ýkon

 array ('i', (1, 2, 3, 4)) Traceback (posledné volanie posledné): File "", riadok 9, v tlači (number) # Chyba: pole nie je definované NameError: name 'number' is nie je definované

Môžeme použiť remove()metódu na odstránenie danej položky a pop()metódu na odstránenie položky v danom indexe.

 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ýkon

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

Na tejto stránke nájdete ďalšie informácie o poli Python a metódach poľa.

Python vypíše Vs polia

V Pythone môžeme so zoznamami zaobchádzať ako s poľami. Nemôžeme však obmedziť typ prvkov uložených v zozname. Napríklad:

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

Ak vytvárate polia pomocou arraymodulu, všetky prvky poľa musia byť rovnakého číselného typu.

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

Výkon

 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.

Pokiaľ pole skutočne nepotrebujete (na prepojenie s kódom C môže byť potrebný modul poľa), použitie modulu poľa sa neodporúča.

Zaujímavé články...