3  Eine kurze Tour durch Variablen und Datentypen in Python

Dieses Tutorial ist das zweite einer Reihe zur Einführung in die Programmierung und Datenanalyse mit der Python-Programmiersprache. Diese Tutorials basieren auf einem praktischen, programmbasierten Ansatz. Der beste Weg, das Material zu erlernen, besteht darin, den Code auszuführen und mit den Beispielen zu experimentieren.

Die folgenden Themen werden in diesem Tutorial behandelt:

3.1 Informationen mithilfe von Variablen speichern

Computer sind für zwei Zwecke nützlich: zum Speichern von Informationen und zum Durchführen von Operationen an gespeicherten Informationen. Beim Arbeiten mit einer Programmiersprache wie Python werden Informationen in Variablen gespeichert. Sie können sich Variablen als Container zum Speichern von Daten vorstellen. Die in einer Variablen gespeicherten Daten werden als Wert bezeichnet.

Code
my_favorite_color = "blue"
Code
my_favorite_color
'blue'

Eine Variable wird mit einer Zuweisungsanweisung erstellt, die mit dem Namen der Variablen beginnt, gefolgt vom Zuweisungsoperator = (anders als der Gleichheitsvergleichsoperator ==), gefolgt vom zu speichernden Wert innerhalb der Variablen.

Sie können in einer einzigen Anweisung auch Werte für mehrere Variablen angeben, indem Sie die Variablennamen und -werte durch Kommas trennen.

Code
color1, color2, color3 = "red", "green", "blue"
Code
color1
'red'
Code
color2
'green'
Code
color3
'blue'

Sie können mehreren Variablen denselben Wert zuweisen, indem Sie mehrere Zuweisungsvorgänge in einer einzigen Anweisung verketten.

Code
color4 = color5 = color6 = "magenta"
Code
color4
'magenta'
Code
color5
'magenta'
Code
color6
'magenta'

Sie können den in einer Variablen gespeicherten Wert einfach ändern, indem Sie ihr mithilfe einer anderen Zuweisungsanweisung einen neuen Wert zuweisen. Seien Sie beim Neuzuweisen von Variablen vorsichtig: Wenn Sie der Variablen einen neuen Wert zuweisen, geht der alte Wert verloren und ist nicht mehr zugänglich.

Code
my_favorite_color = "red"
Code
my_favorite_color
'red'

Während Sie einer Variablen einen neuen Wert zuweisen, können Sie auch den vorherigen Wert der Variablen verwenden, um den neuen Wert zu bestimmen.

Code
counter = 10
Code
counter = counter + 1
Code
counter
11

Das Muster var = var op x (wobei op ein arithmetischer Operator wie +, -, * oder / ist) wird sehr häufig verwendet.

Code
counter = 10
Code
# Same as `counter = counter + 4`
counter += 4
Code
counter
14

Variablennamen können kurz (a, x, y usw.) oder beschreibend (my_favorite_color, profit_margin usw.). Sie müssen jedoch beim Benennen von Python-Variablen die folgenden Regeln befolgen:

  • Der Name einer Variablen muss mit einem Buchstaben oder dem Unterstrichzeichen _ beginnen. Es darf nicht mit einer Zahl beginnen.
  • Ein Variablenname darf nur Klein- oder Großbuchstaben, Ziffern oder Unterstriche enthalten (a-z, A-Z, 0-9 und _).
  • Bei Variablennamen wird die Groß-/Kleinschreibung beachtet, d. h. a_variable, A_variable und A_VARIABLE sind allesamt unterschiedliche Variablen.

Hier sind einige gültige Variablennamen:

Code
a_variable = 23
is_today_Saturday = False
my_favorite_car = "Delorean"
the_3_musketeers = ["Athos", "Porthos", "Aramis"] 

Versuchen wir auch, einige Variablen mit ungültigen Namen zu erstellen. Python gibt einen Syntaxfehler aus, wenn der Name Ihrer Variablen ungültig ist.

Syntax: Die Syntax einer Programmiersprache bezieht sich auf die Regeln, die bestimmen, wie eine gültige Anweisung (ein Statement) in der Sprache aussehen soll. Wenn eine Anweisung diesen Regeln nicht entspricht, stoppt Python die Ausführung und informiert Sie darüber, dass ein Syntaxfehler vorliegt. Sie können sich Syntax als die Grammatikregeln einer Programmiersprache vorstellen.

Code
a variable = 23
  Cell In[20], line 1
    a variable = 23
      ^
SyntaxError: invalid syntax
Code
is_today_$aturday = False
  Cell In[21], line 1
    is_today_$aturday = False
             ^
SyntaxError: invalid syntax
Code
my-favorite-car = "Delorean"
  Cell In[22], line 1
    my-favorite-car = "Delorean"
    ^
SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='?
Code
3_musketeers = ["Athos", "Porthos", "Aramis"]
  Cell In[23], line 1
    3_musketeers = ["Athos", "Porthos", "Aramis"]
     ^
SyntaxError: invalid decimal literal

3.2 Integrierte Datentypen in Python

Alle in einer Python-Variablen gespeicherten Daten oder Informationen haben einen Datentyp. Der Datentyp der in einer Variablen gespeicherten Daten kann mit der Funktion type überprüft werden.

Code
a_variable
23
Code
type(a_variable)
int
Code
is_today_Saturday
False
Code
type(is_today_Saturday)
bool
Code
my_favorite_car
'Delorean'
Code
type(my_favorite_car)
str
Code
the_3_musketeers
['Athos', 'Porthos', 'Aramis']
Code
type(the_3_musketeers)
list

Python hat mehrere built-in Datentypen zur Speicherung verschiedener Arten von Informationen in Variablen. Hier sind einige häufig verwendete Datentypen:

  • Integer
  • Float
  • Boolean
  • None
  • String
  • List
  • Tuple
  • Dictionary

Integer, Float, Boolean, None und String sind primitive Datentypen, weil sie einen einzelnen Wert darstellen. Andere Datentypen wie List, Tuple und Dictionary werden oft als Datenstrukturen oder Container bezeichnet, weil sie mehrere Daten zusammenhalten.

3.2.1 Integer

Ganzzahlen stellen positive oder negative ganze Zahlen dar, von negativ unendlich bis unendlich. Beachten Sie, dass Ganzzahlen keine Dezimalstellen enthalten sollten. Ganzzahlen haben den Typ int.

Code
current_year = 2020
Code
current_year
2020
Code
type(current_year)
int

Im Gegensatz zu einigen anderen Programmiersprachen können ganze Zahlen in Python beliebig groß (oder klein) sein. Es gibt keinen niedrigsten oder höchsten Wert für Ganzzahlen und nur einen int Datentyp.

Code
a_large_negative_number = -23374038374832934334234317348343
Code
a_large_negative_number
-23374038374832934334234317348343
Code
type(a_large_negative_number)
int

3.2.2 Float

Floats (oder Gleitkommazahlen) sind Zahlen mit einem Dezimalpunkt. Es gibt keine Begrenzung für den Wert einer Gleitkommazahl oder die Anzahl der Stellen vor oder nach dem Dezimalpunkt. Gleitkommazahlen haben den Datentyp float.

Code
pi = 3.141592653589793238
Code
pi
3.141592653589793
Code
type(pi)
float

Beachten Sie, dass eine ganze Zahl als Gleitkommazahl behandelt wird, wenn sie mit einem Dezimalpunkt geschrieben wird, auch wenn der Dezimalteil der Zahl Null ist.

Code
a_number = 3.0
Code
a_number
3.0
Code
type(a_number)
float
Code
another_number = 4.
Code
another_number
4.0
Code
type(another_number)
float

Gleitkommazahlen können auch in der wissenschaftlichen Schreibweise geschrieben werden, wobei ein „e“ die Zehnerpotenz angibt.

Code
one_hundredth = 1e-2
Code
one_hundredth
0.01
Code
type(one_hundredth)
float
Code
avogadro_number = 6.02214076e23
Code
avogadro_number
6.02214076e+23
Code
type(avogadro_number)
float

Floats können mit den Funktionen float und int in Ganzzahlen umgewandelt werden und umgekehrt. Die Umwandlung in einen anderen Datentyp wird als Casting bezeichnet.

Code
float(current_year)
2020.0
Code
a_large_negative_number
-23374038374832934334234317348343
Code
float(a_large_negative_number)
-2.3374038374832935e+31
Code
int(pi)
3
Code
int(avogadro_number)
602214075999999987023872

Bei der Durchführung arithmetischer Operationen werden Ganzzahlen automatisch in Gleitkommazahlen umgewandelt, wenn einer der Operanden eine Gleitkommazahl ist. Außerdem gibt der Divisionsoperator / immer eine Gleitkommazahl zurück, auch wenn beide Operanden Ganzzahlen sind. Verwenden Sie den Operator //, wenn das Ergebnis der Division ein int sein soll.

Code
type(45 * 3.0)
float
Code
type(45 * 3)
int
Code
type(10/3)
float
Code
type(10/2)
float
Code
type(10//2)
int
Code
type(11//2)
int

3.2.3 Boolean

Boolesche Werte stellen einen von zwei Werten dar: True und False. Boolesche Werte haben den Datentyp bool.

Code
is_today_Sunday = True
Code
is_today_Sunday
True
Code
type(is_today_Saturday)
bool

Boolesche Werte werden im Allgemeinen als Ergebnis einer Vergleichsoperation zurückgegeben (z. B. ==, >= usw.).

Code
cost_of_ice_bag = 1.25
is_ice_bag_expensive = cost_of_ice_bag >= 10
Code
is_ice_bag_expensive
False
Code
type(is_ice_bag_expensive)
bool

Boolesche Werte werden bei der Verwendung in arithmetischen Operationen automatisch in int umgewandelt. True wird in 1 umgewandelt und False wird in 0 umgewandelt.

Code
5 + False
5
Code
3. + True
4.0

Jeder Wert in Python kann mit der bool Funktion in einen Boolean umgewandelt werden.

Nur die folgenden Werte ergeben False (sie werden oft als falsy Werte bezeichnet):

  1. Der Wert False selbst
  2. Die ganze Zahl 0
  3. Die Fließkommazahl 0.0
  4. Der leere Wert None
  5. Der leere Text ""
  6. Die leere Liste []
  7. Das leere Tupel ()
  8. Das leere Wörterbuch {}
  9. Die leere Menge set()
  10. Der leere Bereich range(0)

Alles andere ergibt True (ein Wert, der zu True ausgewertet wird, wird oft als truthy Wert bezeichnet).

Code
bool(False)
False
Code
bool(0)
False
Code
bool(0.0)
False
Code
bool(None)
False
Code
bool("")
False
Code
bool([])
False
Code
bool(())
False
Code
bool({})
False
Code
bool(set())
False
Code
bool(range(0))
False
Code
bool(True), bool(1), bool(2.0), bool("hello"), bool([1,2]), bool((2,3)), bool(range(10))
(True, True, True, True, True, True, True)

3.2.4 None

Der None-Typ enthält einen einzigen Wert None, der dazu dient, das Fehlen eines Wertes anzuzeigen. None hat den Typ NoneType. Es wird oft verwendet, um eine Variable zu deklarieren, deren Wert später zugewiesen werden kann.

Code
nothing = None
Code
type(nothing)
NoneType

3.2.5 String

Eine Zeichenfolge wird verwendet, um Text (eine Zeichenfolge) in Python darzustellen. Zeichenfolgen müssen in Anführungszeichen gesetzt werden (entweder das einfache Anführungszeichen ' oder das doppelte Anführungszeichen ). Zeichenfolgen haben den Datentyp str.

Code
today = "Saturday"
Code
today
'Saturday'
Code
type(today)
str

Sie können einfache Anführungszeichen innerhalb einer mit doppelten Anführungszeichen geschriebenen Zeichenfolge verwenden und umgekehrt.

Code
my_favorite_movie = "One Flew over the Cuckoo's Nest" 
Code
my_favorite_movie
"One Flew over the Cuckoo's Nest"
Code
my_favorite_pun = 'Thanks for explaining the word "many" to me, it means a lot.'
Code
my_favorite_pun
'Thanks for explaining the word "many" to me, it means a lot.'

Um ein doppeltes Anführungszeichen innerhalb einer mit doppelten Anführungszeichen geschriebenen Zeichenfolge zu verwenden, maskieren Sie die inneren Anführungszeichen, indem Sie ihnen das Zeichen \ voranstellen.

Code
another_pun = "The first time I got a universal remote control, I thought to myself \"This changes everything\"."
Code
another_pun
'The first time I got a universal remote control, I thought to myself "This changes everything".'

Mit einfachen oder doppelten Anführungszeichen erstellte strings müssen in derselben Zeile beginnen und enden. Um mehrzeilige strings zu erstellen, verwenden Sie drei einfache Anführungszeichen ''' oder drei doppelte Anführungszeichen “““, um den string zu beginnen und zu beenden. Zeilenumbrüche werden durch das Zeilenumbruchzeichen \n dargestellt.

Code
yet_another_pun = '''Son: "Dad, can you tell me what a solar eclipse is?" 
Dad: "No sun."'''
Code
yet_another_pun
'Son: "Dad, can you tell me what a solar eclipse is?" \nDad: "No sun."'

Mehrzeilige Zeichenfolgen werden am besten mit der Funktion print angezeigt.

Code
print(yet_another_pun)
Son: "Dad, can you tell me what a solar eclipse is?" 
Dad: "No sun."
Code
a_music_pun = """
Two windmills are standing in a field and one asks the other, 
"What kind of music do you like?"  

The other says, 
"I'm a big metal fan."
"""
Code
print(a_music_pun)

Two windmills are standing in a field and one asks the other, 
"What kind of music do you like?"  

The other says, 
"I'm a big metal fan."

Sie können die Länge einer Zeichenfolge mit der Funktion len überprüfen.

Code
len(my_favorite_movie)
31

Beachten Sie, dass Sonderzeichen wie \n und Escapezeichen wie \" als ein einzelnes Zeichen zählen, auch wenn sie als zwei Zeichen geschrieben und manchmal ausgegeben werden.

Code
multiline_string = """a
b"""
multiline_string
'a\nb'
Code
len(multiline_string)
3

Mit der Funktion list kann eine Zeichenfolge in eine Liste von Zeichen umgewandelt werden.

Code
list(multiline_string)
['a', '\n', 'b']

Strings unterstützen auch mehrere Listenoperationen, die im nächsten Abschnitt besprochen werden. Wir werden uns hier einige Beispiele ansehen.

Mit der Indexierungsnotation [] können Sie auf einzelne Zeichen innerhalb einer Zeichenfolge zugreifen. Beachten Sie, dass die Zeichenindizes von 0 bis n-1 reichen, wobei n die Länge der Zeichenfolge ist.

Code
today = "Saturday"
Code
today[0]
'S'
Code
today[3]
'u'
Code
today[7]
'y'

Sie können auf einen Teil einer Zeichenfolge zugreifen, indem Sie einen Start:End-Bereich anstelle eines einzelnen Indexes in [] angeben.

Code
today[5:8]
'day'

Sie können auch mit dem „in“-Operator überprüfen, ob eine Zeichenfolge Text enthält.

Code
'day' in today
True
Code
'Sun' in today
False

Zwei oder mehr Zeichenfolgen können mit dem Operator + verbunden oder verkettet werden. Seien Sie beim Verketten von Zeichenfolgen vorsichtig. Manchmal müssen Sie möglicherweise ein Leerzeichen " " zwischen Wörtern einfügen.

Code
full_name = "Derek O'Brien"
Code
greeting = "Hello"
Code
greeting + full_name
"HelloDerek O'Brien"
Code
greeting + " " + full_name + "!" # additional space
"Hello Derek O'Brien!"

Strings in Python verfügen über viele integrierte Methoden, mit denen sie manipuliert werden können. Probieren wir einige gängige String-Methoden aus.

Methoden: Methoden sind Funktionen, die Datentypen zugeordnet sind und auf die mit der „.“-Notation zugegriffen wird, z. B. variable_name.method() oder "a string".method(). Methoden sind eine leistungsstarke Technik, um allgemeine Vorgänge mit Werten bestimmter Datentypen zu verknüpfen.

Die Methoden .lower(), .upper() und .capitalize() werden verwendet, um die Groß-/Kleinschreibung der Zeichen zu ändern.

Code
today.lower()
'saturday'
Code
"saturday".upper()
'SATURDAY'
Code
"monday".capitalize() # changes first character to uppercase
'Monday'

Die Methode .replace wird verwendet, um einen Teil der Zeichenfolge durch eine andere Zeichenfolge zu ersetzen. Der zu ersetzende Teil und der Ersetzungstext werden als Eingaben oder Argumente angenommen.

Code
another_day = today.replace("Satur", "Wednes")
Code
another_day
'Wednesday'

Beachten Sie, dass eine neue Zeichenfolge zurückgegeben wird und die ursprüngliche Zeichenfolge nicht geändert wird.

Code
today
'Saturday'

Die Methode .split kann verwendet werden, um eine Zeichenfolge anhand der bereitgestellten Zeichen in eine Liste von Zeichenfolgen aufzuteilen.

Code
"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",")
['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

Die .strip Methode wird verwendet, um Leerzeichen am Anfang und Ende einer Zeichenfolge zu entfernen.

Code
a_long_line = "       This is a long line with some space before, after,     and some space in the middle..    "
Code
a_long_line_stripped = a_long_line.strip()
Code
a_long_line_stripped
'This is a long line with some space before, after,     and some space in the middle..'

Die Methode .format wird verwendet, um Werte anderer Datentypen zu kombinieren, z. Ganzzahlen, Gleitkommazahlen, Boolesche Werte, Listen usw. mit Zeichenfolgen. Es wird häufig zum Erstellen von Ausgabemeldungen zur Anzeige verwendet.

Code
# Input variables
cost_of_ice_bag = 1.25
profit_margin = .2
number_of_bags = 500

# Template for output message
output_template = """If a grocery store sells ice bags at $ {} per bag, with a profit margin of {} %, 
then the total profit it makes by selling {} ice bags is $ {}."""

print(output_template)
If a grocery store sells ice bags at $ {} per bag, with a profit margin of {} %, 
then the total profit it makes by selling {} ice bags is $ {}.
Code
# Inserting values into the string
total_profit = cost_of_ice_bag * profit_margin * number_of_bags
output_message = output_template.format(cost_of_ice_bag, profit_margin*100, number_of_bags, total_profit)

print(output_message)
If a grocery store sells ice bags at $ 1.25 per bag, with a profit margin of 20.0 %, 
then the total profit it makes by selling 500 ice bags is $ 125.0.

Beachten Sie, wie die Platzhalter {} in der Zeichenfolge output_template durch die Argumente ersetzt werden, die der Methode .format bereitgestellt werden.

Es ist auch möglich, den String-Verkettungsoperator + zu verwenden, um Strings mit anderen Werten zu kombinieren. Diese Werte müssen jedoch zuerst mit der Funktion str in Strings konvertiert werden.

Code
"If a grocery store sells ice bags at $ " + cost_of_ice_bag + ", with a profit margin of " + profit_margin
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[126], line 1
----> 1 "If a grocery store sells ice bags at $ " + cost_of_ice_bag + ", with a profit margin of " + profit_margin

TypeError: can only concatenate str (not "float") to str
Code
"If a grocery store sells ice bags at $ " + str(cost_of_ice_bag) + ", with a profit margin of " + str(profit_margin)

Tatsächlich kann str verwendet werden, um einen Wert eines beliebigen Datentyps in einen String umzuwandeln.

Code
str(23)
Code
str(23.432)
'23.432'
Code
str(True)
'True'
Code
the_3_musketeers = ["Athos", "Porthos", "Aramis"]
str(the_3_musketeers)
"['Athos', 'Porthos', 'Aramis']"

Beachten Sie, dass alle Zeichenfolgenmethoden neue Werte zurückgeben und die vorhandene Zeichenfolge NICHT ändern. Eine vollständige Liste der String-Methoden finden Sie hier.

Strings unterstützen auch die Vergleichsoperatoren == und !=, um zu prüfen, ob zwei Strings gleich sind

Code
first_name = "John"
Code
first_name == "Doe"
False
Code
first_name == "John"
True
Code
first_name != "Jane"
True

3.2.6 List

Eine Liste in Python ist eine geordnete Sammlung von Werten. Listen können Werte unterschiedlicher Datentypen enthalten und Vorgänge zum Hinzufügen, Entfernen und Ändern von Werten unterstützen. Listen haben den Typ list.

Um eine Liste zu erstellen, schließen Sie eine Werteliste in eckige Klammern [ und ] ein, getrennt durch Kommas.

Code
fruits = ['apple', 'banana', 'cherry']
Code
fruits
['apple', 'banana', 'cherry']
Code
type(fruits)
list

Versuchen wir, eine Liste mit Werten verschiedener Datentypen zu erstellen, einschließlich einer anderen Liste.

Code
a_list = [23, 'hello', None, 3.14, fruits, 3 <= 5]
Code
a_list
[23, 'hello', None, 3.14, ['apple', 'banana', 'cherry'], True]
Code
empty_list = []
Code
empty_list
[]

Um die Anzahl der Werte in einer Liste zu bestimmen, verwenden Sie die Funktion len. Im Allgemeinen kann die Funktion len zur Bestimmung von Werten in mehreren anderen Datentypen verwendet werden.

Code
len(fruits)
3
Code
print("Number of fruits:", len(fruits))
Number of fruits: 3
Code
len(a_list)
6
Code
len(empty_list)
0

Sie können auf die Elemente einer Liste zugreifen, indem Sie den Index des Elements verwenden, beginnend mit dem Index 0.

Code
fruits[0]
'apple'
Code
fruits[1]
'banana'
Code
fruits[2]
'cherry'

Wenn Sie versuchen, auf einen Index zuzugreifen, der gleich oder größer als die Länge der Liste ist, gibt Python einen IndexError zurück.

Code
fruits[3]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[145], line 1
----> 1 fruits[3]

IndexError: list index out of range
Code
fruits[4]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[146], line 1
----> 1 fruits[4]

IndexError: list index out of range
Code
fruits[-1]
'cherry'
Code
fruits[-2]
'banana'
Code
fruits[-3]
'apple'
Code
fruits[-4]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[150], line 1
----> 1 fruits[-4]

IndexError: list index out of range

Sie können auch über die Liste auf einen Wertebereich zugreifen. Das Ergebnis ist selbst eine Liste. Schauen wir uns einige Beispiele an.

Code
a_list = [23, 'hello', None, 3.14, fruits, 3 <= 5]
Code
a_list
[23, 'hello', None, 3.14, ['apple', 'banana', 'cherry'], True]
Code
len(a_list)
6
Code
a_list[2:5]
[None, 3.14, ['apple', 'banana', 'cherry']]

Beachten Sie, dass der Startindex (2 im obigen Beispiel) des Bereichs in der Liste enthalten ist, der Endindex (5 im obigen Beispiel) jedoch nicht. Das Ergebnis hat also 3 Werte (Indizes 2,3 und 4).

Die flexible und interaktive Natur von Jupyter-Notebooks macht sie zu einem großartigen Werkzeug für Lernen und Experimentieren. Die meisten Fragen, die beim ersten Erlernen von Python auftauchen, können einfach durch Eingabe des Codes in eine Zelle und Ausführung desselben gelöst werden. Lassen Sie Ihrer Neugier freien Lauf und entdecken Sie, was mit Python möglich ist und was nicht!

Sie können den Wert an einem bestimmten Index innerhalb einer Liste auch mithilfe der Zuweisungsoperation ändern.

Code
fruits
['apple', 'banana', 'cherry']
Code
fruits[1] = 'blueberry'
Code
fruits
['apple', 'blueberry', 'cherry']

Mit der Methode append kann am Ende einer Liste ein neuer Wert hinzugefügt werden.

Code
fruits.append('dates')
Code
fruits
['apple', 'blueberry', 'cherry', 'dates']

Ein neuer Wert kann auch mit der Methode insert in einen bestimmten Index eingefügt werden.

Code
fruits.insert(1, 'banana')
Code
fruits
['apple', 'banana', 'blueberry', 'cherry', 'dates']

Sie können einen Wert mit der Methode remove aus der Liste entfernen.

Code
fruits.remove('blueberry')
Code
fruits
['apple', 'banana', 'cherry', 'dates']

Was passiert, wenn eine Liste mehrere Instanzen des an .remove übergebenen Werts enthält?

Code
fruits.remove
<function list.remove(value, /)>
Code
fruits
['apple', 'banana', 'cherry', 'dates']

Um ein Element aus einem bestimmten Index zu entfernen, verwenden Sie die Methode pop. Die Methode gibt auch das entfernte Element zurück.

Code
fruits
['apple', 'banana', 'cherry', 'dates']
Code
fruits.pop(1)
'banana'
Code
fruits
['apple', 'cherry', 'dates']

Wenn kein Index bereitgestellt wird, entfernt die Methode pop das letzte Element der Liste.

Code
fruits.pop()
'dates'
Code
fruits
['apple', 'cherry']

Mit dem in-Operator können Sie testen, ob eine Liste einen Wert enthält.

Code
'pineapple' in fruits
False
Code
'cherry' in fruits
True

Um zwei oder mehr Listen zu kombinieren, verwenden Sie den Operator +. Dieser Vorgang wird auch Verkettung (concatenation) genannt.

Code
fruits
['apple', 'cherry']
Code
more_fruits = fruits + ['pineapple', 'tomato', 'guava'] + ['dates', 'banana']
Code
more_fruits
['apple', 'cherry', 'pineapple', 'tomato', 'guava', 'dates', 'banana']

Um eine Kopie einer Liste zu erstellen, verwenden Sie die Methode copy. Das Ändern der kopierten Liste hat keine Auswirkungen auf die ursprüngliche Liste.

Code
more_fruits_copy = more_fruits.copy()
Code
more_fruits_copy
['apple', 'cherry', 'pineapple', 'tomato', 'guava', 'dates', 'banana']
Code
# Modify the copy
more_fruits_copy.remove('pineapple')
more_fruits_copy.pop()
more_fruits_copy
['apple', 'cherry', 'tomato', 'guava', 'dates']
Code
# Original list remains unchanged
more_fruits
['apple', 'cherry', 'pineapple', 'tomato', 'guava', 'dates', 'banana']

Beachten Sie, dass Sie keine Kopie einer Liste erstellen können, indem Sie einfach eine neue Variable mit dem Zuweisungsoperator = erstellen. Die neue Variable verweist auf dieselbe Liste und alle mit einer Variablen vorgenommenen Änderungen wirken sich auf die andere aus.

Code
more_fruits
['apple', 'cherry', 'pineapple', 'tomato', 'guava', 'dates', 'banana']
Code
more_fruits_not_a_copy = more_fruits
Code
more_fruits_not_a_copy.remove('pineapple')
more_fruits_not_a_copy.pop()
'banana'
Code
more_fruits_not_a_copy
['apple', 'cherry', 'tomato', 'guava', 'dates']
Code
more_fruits
['apple', 'cherry', 'tomato', 'guava', 'dates']

Genau wie bei Strings gibt es mehrere integrierte Methoden zum Bearbeiten einer Liste. Im Gegensatz zu Zeichenfolgen ändern die meisten Listenmethoden jedoch die ursprüngliche Liste, anstatt eine neue zurückzugeben. Schauen Sie sich hier einige gängige Listenoperationen an.

3.2.7 Tuple

Ein Tupel ist eine geordnete Sammlung von Werten, ähnlich einer Liste, jedoch ist es nicht möglich, Werte in einem Tupel hinzuzufügen, zu entfernen oder zu ändern. Ein Tupel wird erstellt, indem Werte in Klammern ( und ), getrennt durch Kommas, eingeschlossen werden.

Jede Datenstruktur, die nach der Erstellung nicht mehr verändert werden kann, wird als unveränderlich bezeichnet. Sie können Tupel als unveränderliche Listen betrachten.

Lassen Sie uns einige Experimente mit Tupeln durchführen.

Code
fruits = ('apple', 'cherry', 'dates')
Code
# check no. of elements
len(fruits)
3
Code
# get an element (positive index)
fruits[0]
'apple'
Code
# get an element (negative index)
fruits[-2]
'cherry'
Code
# check if it contains an element
'dates' in fruits
True
Code
# try to change an element
fruits[0] = 'avocado'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[190], line 2
      1 # try to change an element
----> 2 fruits[0] = 'avocado'

TypeError: 'tuple' object does not support item assignment
Code
# try to append an element
fruits.append('blueberry')
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[191], line 2
      1 # try to append an element
----> 2 fruits.append('blueberry')

AttributeError: 'tuple' object has no attribute 'append'
Code
# try to remove an element
fruits.remove('apple')
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[192], line 2
      1 # try to remove an element
----> 2 fruits.remove('apple')

AttributeError: 'tuple' object has no attribute 'remove'

Sie können beim Erstellen eines Tupels auch die Klammern ( und ) überspringen. Python wandelt durch Kommas getrennte Werte automatisch in ein Tupel um.

Code
the_3_musketeers = 'Athos', 'Porthos', 'Aramis'
Code
the_3_musketeers
('Athos', 'Porthos', 'Aramis')

Sie können ein Tupel auch mit nur einem Element erstellen, wenn Sie nach dem Element ein Komma einfügen. Wenn Sie es einfach mit den Klammern ( und ) umschließen, wird kein Tupel erstellt.

Code
single_element_tuple = 4,
Code
single_element_tuple
(4,)
Code
another_single_element_tuple = (4,)
Code
another_single_element_tuple
(4,)
Code
not_a_tuple = (4)
Code
not_a_tuple
4

Tupel werden oft verwendet, um mehrere Variablen mit einer einzigen Anweisung zu erstellen.

Code
point = (3, 4)
Code
point_x, point_y = point
Code
point_x
3
Code
point_y
4

Sie können eine Liste mit der Funktion tuple in ein Tupel umwandeln und umgekehrt mit der Funktion list.

Code
tuple(['one', 'two', 'three'])
('one', 'two', 'three')
Code
list(('Athos', 'Porthos', 'Aramis'))
['Athos', 'Porthos', 'Aramis']

Tupel haben nur zwei integrierte Methoden: count und index. Es gibt eine einfache Möglichkeit, die Dokumentation einer Methode mithilfe der help Funktion zu überprüfen.

Code
a_tuple = 23, "hello", False, None, 23, 37, "hello"
Code
help(a_tuple.count)
Help on built-in function count:

count(value, /) method of builtins.tuple instance
    Return number of occurrences of value.

In einem Jupyter-Notizbuch können Sie eine Codezelle auch mit „?“ beginnen und den Namen einer Funktion oder Methode eingeben. Wenn Sie diese Zelle ausführen, wird die Dokumentation für die Funktion/Methode in einem Popup-Fenster angezeigt.

Code
?a_tuple.index

3.2.8 Dictionary

Ein Dictionary ist eine ungeordnete Sammlung von Elementen. Jedes in einem Dictionary gespeicherte Element hat einen Schlüssel und einen Wert. Schlüssel werden verwendet, um Werte aus dem Dictionary abzurufen. Dictionaries haben den Typ dict.

Dictionaries werden oft verwendet, um viele Informationen, z.B. Details über eine Person, in einer einzigen Variable zu speichern. Dictionaries werden erstellt, indem Schlüssel-Wert-Paare in geschweiften Klammern { und } eingeschlossen werden.

Code
person1 = {
    'name': 'John Doe',
    'sex': 'Male',
    'age': 32,
    'married': True
}
Code
person1
{'name': 'John Doe', 'sex': 'Male', 'age': 32, 'married': True}

Dictionaries können auch mit der Funktion dict erstellt werden.

Code
person2 = dict(name='Jane Judy', sex='Female', age=28, married=False)
Code
person2
{'name': 'Jane Judy', 'sex': 'Female', 'age': 28, 'married': False}
Code
type(person1)
dict

Schlüssel können verwendet werden, um auf Werte zuzugreifen, die die eckigen Klammern [ und ] verwenden.

Code
person1['name']
'John Doe'
Code
person1['married']
True
Code
person2['name']
'Jane Judy'

Wenn ein Schlüssel nicht im Dictionary vorhanden ist, wird ein KeyError zurückgegeben.

Code
person1['address']
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[218], line 1
----> 1 person1['address']

KeyError: 'address'

Die Methode get kann auch verwendet werden, um auf den mit einem Schlüssel verknüpften Wert zuzugreifen.

Code
person2.get("name")
'Jane Judy'

Die Methode get akzeptiert auch einen Standardwert, der zurückgegeben wird, wenn der Schlüssel nicht im Dictionary vorhanden ist.

Code
person2.get("address", "Unknown")
'Unknown'

Mit dem in Operator können Sie überprüfen, ob ein Schlüssel in einem Dictionary vorhanden ist.

Code
'name' in person1
True
Code
'address' in person1
False

Sie können den einem Schlüssel zugeordneten Wert mithilfe des Zuweisungsoperators ändern.

Code
person2['married']
False
Code
person2['married'] = True
Code
person2['married']
True

Der Zuweisungsoperator kann auch verwendet werden, um dem Dictionary neue Schlüssel-Wert-Paare hinzuzufügen.

Code
person1
{'name': 'John Doe', 'sex': 'Male', 'age': 32, 'married': True}
Code
person1['address'] = '1, Penny Lane'
Code
person1
{'name': 'John Doe',
 'sex': 'Male',
 'age': 32,
 'married': True,
 'address': '1, Penny Lane'}

Um einen Schlüssel und den zugehörigen Wert aus einem Dictionary zu entfernen, verwenden Sie die Methode pop.

Code
person1.pop('address')
'1, Penny Lane'
Code
person1
{'name': 'John Doe', 'sex': 'Male', 'age': 32, 'married': True}

Dictonaries bieten auch Methoden zum Anzeigen der Liste der darin enthaltenen Schlüssel, Werte oder Schlüssel-Wert-Paare.

Code
person1.keys()
dict_keys(['name', 'sex', 'age', 'married'])
Code
person1.values()
dict_values(['John Doe', 'Male', 32, True])
Code
person1.items()
dict_items([('name', 'John Doe'), ('sex', 'Male'), ('age', 32), ('married', True)])
Code
person1.items()[1]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[234], line 1
----> 1 person1.items()[1]

TypeError: 'dict_items' object is not subscriptable

Das Ergebnis der Funktionen keys, values oder items sieht zwar aus wie Listen, unterstützt aber anscheinend nicht den Indexoperator [] zum Abrufen von Elementen.

Dictionaries bieten viele weitere Methoden. Mehr darüber erfahren Sie hier.

3.3 Weiterführende Literatur

Wir haben unsere Untersuchung von Variablen und gängigen Datentypen in Python nun abgeschlossen. Im Folgenden finden Sie einige Ressourcen, um mehr über Datentypen in Python zu erfahren: