CodeGym /Java Kurs /Python SELF DE /Arrays mit fester Größe

Arrays mit fester Größe

Python SELF DE
Level 52 , Lektion 2
Verfügbar

9.1 Besonderheiten von Arrays mit fester Größe

Arrays mit fester Größe sind Arrays, deren Größe bei der Erstellung festgelegt wird und während der Laufzeit des Programms nicht geändert werden kann. In Python kann man solche Arrays mit der Bibliothek array erstellen oder Listen verwenden. Obwohl Listen in Python ihre Größe ändern können, werden sie ähnlich wie Arrays in anderen Sprachen verwendet.

Besonderheiten von Arrays mit fester Größe:

  • Feste Größe: Die Größe des Arrays wird bei der Erstellung festgelegt und kann nicht geändert werden.
  • Homogenität: Alle Elemente des Arrays müssen vom selben Typ sein.
  • Schneller Zugriff per Index: Der Zugriff auf die Elemente des Arrays erfolgt in konstanter Zeit O(1).
  • Unveränderlichkeit der Größe: Die Anzahl der Elemente im Array bleibt konstant, und das Hinzufügen neuer Elemente ist nicht möglich.

Beispiel zur Erstellung eines Arrays mit fester Größe in Python:

Mit der Bibliothek array:


import array

# Erstellung eines Arrays aus Ganzzahlen (Typ 'i' für int)
arr = array.array('i', [1, 2, 3, 4, 5])

# Zugriff auf Elemente
print(arr[2])  # Ausgabe: 3

# Änderung eines Elementwerts
arr[2] = 10
print(arr)  # Ausgabe: array('i', [1, 2, 10, 4, 5])

Mit einer Liste (nachahmend ein Array mit fester Größe):


# Erstellung einer Liste mit fester Größe
arr = [0] * 5

# Initialisierung der Elemente
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5

# Zugriff auf Elemente
print(arr[2])  # Ausgabe: 3

# Änderung eines Elementwerts
arr[2] = 10
print(arr)  # Ausgabe: [1, 2, 10, 4, 5]

9.2 Vorteile und Nachteile von Arrays mit fester Größe

Alles hat seine Stärken und Schwächen, so auch fixe Arrays.

Vorteile:

  • Schneller Zugriff per Index: Der Zugriff auf jedes Element des Arrays erfolgt in konstanter Zeit O(1), was Arrays sehr effizient für das Lesen von Daten macht.
  • Einfache Implementierung: Arrays sind leicht zu verstehen und zu handhaben, ihre Implementierung und Anwendung in verschiedenen Aufgaben ist einfach.
  • Effiziente Speichernutzung: Da die Arraygröße fest ist, wird der Speicher sofort bei der Erstellung des Arrays zugewiesen, was Kosten für die Speicherumverteilung vermeidet.
  • Vorhersehbarkeit: Die feste Größe des Arrays vereinfacht das Ressourcenmanagement und die Vorhersehbarkeit bei der Ressourcennutzung.

Nachteile:

  • Unveränderlichkeit der Größe: Die Größe des Arrays wird bei der Erstellung festgelegt und kann nicht geändert werden. Das bedeutet, dass man die erforderliche Größe des Arrays im Voraus kennen oder das Risiko einer übermäßigen Speicherzuteilung eingehen muss.
  • Kosten für Einfügen und Löschen: Einfügen und Löschen von Elementen kann zeitaufwändig sein, da ein Verschieben von Elementen erforderlich ist. Im schlimmsten Fall dauert das Einfügen oder Löschen eines Elements in der Mitte des Arrays O(n) Zeit.
  • Ineffiziente Speichernutzung: Wenn das Array nicht vollständig genutzt wird, bleiben die restlichen Speicherzellen ungenutzt, was zu einer ineffizienten Speichernutzung führen kann.
  • Begrenzte Flexibilität: Arrays erlauben keine dynamische Größenänderung, was sie im Vergleich zu dynamischen Datenstrukturen wie Listen weniger flexibel macht.

9.3 Beispiele für Verwendung und Anwendung

Hier sind einige Beispiele für die Verwendung und Anwendung von Arrays mit fester Größe.

Beispiel 1: Tabellen und Matrizen

Arrays mit fester Größe werden häufig zur Darstellung von Tabellen und Matrizen verwendet, deren Größe im Voraus bekannt ist.


import numpy as np

# Erstellung einer 3x3-Matrix mit fester Größe
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# Zugriff auf die Matrixelemente
print(matrix[1][2])  # Ausgabe: 6

# Änderung eines Matrixelements
matrix[1][2] = 10
print(matrix)
# Ausgabe:
# [[ 1  2  3]
#  [ 4  5 10]
#  [ 7  8  9]]

Beispiel 2: Puffer und Caches

Arrays mit fester Größe werden zur Erstellung von Puffern und Caches verwendet, deren Größe im Voraus bekannt ist und sich nicht ändert.


# Puffer mit fester Größe zum Lesen von Daten
buffer_size = 1024
buffer = bytearray(buffer_size)

# Füllen des Puffers mit Daten
data = b"Hello, World!"
buffer[:len(data)] = data

print(buffer[:len(data)])  # Ausgabe: b'Hello, World!'

Beispiel 3: Datenspeicherung von Zeit und Datum

Arrays mit fester Größe können zur Speicherung von Zeit- und Datumsdaten verwendet werden, wie z.B. die Anzahl der Tage in jedem Monat.

In diesem Beispiel wird das Verhalten eines festen Arrays durch eine list-Klasse nachgeahmt:


# Anzahl der Tage in jedem Monat (kein Schaltjahr)
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# Zugriff auf Daten
month = 2  # Februar
print(f"Februar hat {days_in_month[month - 1]} Tage")  # Ausgabe: Februar hat 28 Tage
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION