Numerikus értékek Python tömbje

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 arraymodul 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 arraymodult. 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 floattípusú tömböt . A betű dtí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: iegész számokra és dlebegőkre.

Megjegyzés : Az uUnicode 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 arraymodul 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.

érdekes cikkek...