Listen und Tupel

Listen

Eine Liste ist eine Folge ("Sequenz") von Werten.

liste_1 = [2, 4, 6, 8]
liste_2 = ["x", "y", "z"]
namenliste = ["Fritz", "Anton", "Elisabeth"]

print(liste_1)
print(sum(liste_1))
print(liste_1 + liste_2)
print(namenliste[0])
namenliste.insert(1, "Monika")
print(namenliste)

Siehe auch https://docs.python.org/3/tutorial/datastructures.html


Bei Listen gilt (wie auch bei Strings) die Slicing-Syntax:
var_name[start:end] liefert die Zeichen von der Position start (inklusive) bis zur Position end (exklusive)

name = "Maria-Theresia"
print(name[0])
print(name[3:6])
print(name[-3])

Interessant ist auch die Möglichkeit Listen als Elemente in einer Liste zu verwenden!

personen = []  # leere Liste
person_1 = ["Maria-Theresia", "Attnang-Puchheim"]
person_2 = ["Franz-Ferdinand", "Bad Goisern"]
personen.append(person_1)
personen.append(person_2)
print(personen)


Tupel

Ein Tupel ist kurz gesagt eine unveränderliche Liste.

Tupel können mit oder auch ohne runde Klammern definiert werden:

t_1 = (10, 11, 12)
t_2 = 0.5, 0.75, 0.9, 0,85

print(t_1) 
print(t_2)
print(t_2[1])    # t_2 beginnt mit Index 0 und Wert 0.5
print(t_2[1:3])  # t_2 vom Index 1 (inklusive) bis Index 3 (exklusive)

Der Vorteil von Tupeln gegenüber Listen ist weniger Overhead in der Verwaltung des Datentyps und somit eine größere Geschwindigkeit bei der Verwendung gegenüber Listen.

Auch die range-Anweisung bzw. range-Funktion erzeugt ein Tupel.

# SYNTAX: range([start,] stop [, step])  Die Angaben in [] sind optional!
for i in range(10,20,3):  
    print(i)

List/Tupel/Set-Comprehension

Herkömmliche Vorgehensweise:

meine_liste = [3, 4, 5, 6]

for x in meine_liste:
    print(x**2)

Elegantere und effizientere Methode mittels List-Comprehension:

meine_liste = [3, 4, 5, 6]
quadrate = [x**2 for x in meine_liste]
print(quadrate)

Dies hat auch den Vorteil, dass man die neu erschaffene Liste namens quadrate für spätere Zwecke noch zur Verfügung hat.