Ebben az oktatóanyagban példák segítségével megismerheti a Python tömb modult, a tömbök és a listák közötti különbséget, valamint azok használatának módját és idejét.
Megjegyzés: Amikor az emberek tömböt mondanak a Pythonban, gyakran Python-listákról beszélnek . Ebben az esetben keresse fel a Python lista oktatóanyagát.
Ebben az oktatóanyagban egy nevű modulra fogunk összpontosítani array
. A array
modul lehetővé teszi számszerű értékek gyűjteményének tárolását.
Python tömbök létrehozása
A numerikus értékek tömbjének létrehozásához be kell importálnunk a array
modult. Például:
import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)
Kimenet
tömb ('d', (1.1, 3.5, 4.5)
Itt hoztunk létre egy float
típusú tömböt . A betű d
típus kód. Ez meghatározza a tömb típusát a létrehozás során.
A gyakran használt típuskódok a következők:
Kód | C típus | Python típus | Min. Bájt |
---|---|---|---|
b | aláírt char | int | 1 |
B | aláíratlan char | int | 1 |
u | Py_UNICODE | Unicode | 2 |
h | rövid aláírt | int | 2 |
H | aláíratlanul rövid | int | 2 |
i | aláírt int | int | 2 |
I | aláíratlan int | int | 2 |
l | hosszú aláírással | int | 4 |
L | aláíratlanul hosszú | int | 4 |
f | úszó | úszó | 4 |
d | kettős | úszó | 8. |
Ebben a cikkben nem tárgyalunk különböző C típusokat. Ebben a cikkben két típusú kódot fogunk használni: i
egész számokra és d
lebegőkre.
Megjegyzés : Az u
Unicode karakterek típuskódja elavult a 3.3 verzió óta. Kerülje a lehető legtöbbet.
Hozzáférés a Python tömb elemeihez
A tömb elemeihez indexeket használunk:
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))
Kimenet
Első elem: 2 Második elem: 4 Utolsó elem: 8
Megjegyzés : Az index 0-tól (nem 1-től) indul, hasonlóan a listákhoz.
Python tömbök szeletelése
A tömb elemeinek egy sorához hozzáférhetünk a szeletelő operátor használatával :
.
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
Kimenet
tömb ('i', (62, 5, 42)) tömb ('i', (2, 5, 62)) tömb ('i', (52, 48, 5)) tömb ('i', (2 (5, 62, 5, 42, 52, 48, 5))
Elemek módosítása és hozzáadása
A tömbök változtathatóak; elemeik a listákhoz hasonló módon változtathatók.
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))
Kimenet
tömb ('i', (0, 2, 3, 5, 7, 10)) tömb ('i', (0, 2, 4, 6, 8, 10)
A append()
metódussal hozzáadhatunk egy elemet a tömbhöz , vagy a metódussal több elemet is hozzáadhatunk 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))
Kimenet
tömb ('i', (1, 2, 3, 4)) tömb ('i', (1, 2, 3, 4, 5, 6, 7))
Két tömböt összefűzhetünk az +
operátor segítségével is .
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)
Kimenet
tömb ('i', (1, 3, 5, 2, 4, 6)
Python tömb elemek eltávolítása
Egy vagy több elemet törölhetünk egy tömbből a Python del utasításával.
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
Kimenet
tömb ('i', (1, 2, 3, 4)) Traceback (a legutóbbi hívás utoljára): "" fájl, 9. sor nyomtatásban (szám) # Hiba: a tömb nincs meghatározva nem meghatározott
Használhatjuk a remove()
metódust az adott elem eltávolítására, és a pop()
metódust egy elem eltávolítására az adott indexben.
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))
Kimenet
tömb ('i', (10, 11, 12, 13)) 12 tömb ('i', (10, 11, 13))
Ezen az oldalon többet tudhat meg a Python tömb és tömb metódusairól.
A Python felsorolja a Vs tömböket
A Pythonban a listákat tömbként kezelhetjük. Nem korlátozhatjuk azonban a listában tárolt elemek típusát. Például:
# elements of different types a = (1, 3.5, "Hello")
Ha tömböket hoz létre a array
modul segítségével , akkor a tömb összes elemének azonos numerikus típusúnak kell lennie.
import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))
Kimenet
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.
Hacsak nincs igazán szüksége tömbökre (tömb modulra lehet szükség a C kóddal való interakcióhoz), a tömb modul használata nem ajánlott.