Kapitel 5: Grundlegende Datenstruktur von Python – Liste

Sequenzen sind die grundlegendste Datenstruktur in Python.

Jeder Wert in der Sequenz hat einen entsprechenden Positionswert, der als Index bezeichnet wird. Der erste Index ist 0, der zweite Index ist 1 und so weiter.

Python verfügt über sechs integrierte Typen für Sequenzen, am häufigsten sind jedoch Listen und Tupel.

Zu den Vorgängen, die für Listen ausgeführt werden können, gehören Indizierung, Slicing, Addition, Multiplikation und Überprüfung der Mitgliedschaft.

Darüber hinaus verfügt Python über integrierte Methoden zur Bestimmung der Länge einer Sequenz und zur Bestimmung der größten und kleinsten Elemente.

Eine Liste ist der am häufigsten verwendete Python-Datentyp und kann als durch Kommas getrennter Wert in eckigen Klammern angezeigt werden.

Die Datenelemente der Liste müssen nicht denselben Typ haben

1. Listenerstellung

  • Was ist eine Liste?

    • Sequenzen sind die grundlegendste Datenstruktur in Python .
  • Warum brauchst du eine Liste?

    • Eine Variable kann ein Element speichern , und eine Liste ist ein „großer Container“, der mehr als N Elemente speichern kann, und das Programm kann diese Daten problemlos als Ganzes verarbeiten
  • Listen entsprechen Arrays in anderen Sprachen

  • Merkmale der Liste

    • Listenelemente in der richtigen Reihenfolge auflisten
    • Indexzuordnung nur eines Datentyps
    • Listen können doppelte Daten speichern
    • Gemischte Speicherung beliebiger Datentypen
    • Weisen Sie Speicher nach Bedarf dynamisch zu und fordern Sie ihn zurück
  • Listendiagramm

    • Vorwärtsindex

    Bild-20220711222653856

    • invertierter Index

    Bild-20220711222807137

  • Listenerstellung

    Um eine Liste zu erstellen, schließen Sie einfach die verschiedenen Datenelemente durch Kommas getrennt in eckige Klammern ein

    • Verwenden Sie eckige Klammern
    • Rufen Sie die integrierte Funktion list() auf
  • Code-Demo

list = ["hello", "Python", "World"]
print(id(list))
print(type(list))
print(list)

list2=list(["hello",87,"YWHh"])
print(list2)

2. Listenabfragevorgang

2.1 Rufen Sie den Index des angegebenen Elements in der Liste ab

  • Da die Liste N identische Elemente enthält, wird nur das erste Element desselben Elements zurückgegeben
  • ValueError wird ausgelöst, wenn das abgefragte Element nicht in der Liste vorhanden ist
  • Sie können auch zwischen dem angegebenen Start und Stopp abfragen
lst = ["hello", "world", 98, "hello"]
# 如果列表中有相同元素,只返回列表中的第一个元素
print(lst.index("hello"))
# print(lst.index("1111"))  元素不存在
# 指定范围查找
print(lst.index("hello", 1, 4))

2.2 Holen Sie sich ein einzelnes Element in der Liste

  • Vorwärtsindex von 0 bis N-1
  • Index von -N auf -1 umkehren
  • Der angegebene Index existiert nicht, es wird ein IndexError ausgelöst
lst = ["hello", "world", 98, "hello"]
# 正向索引:获取索引为2的元素
print(lst[2])
# 逆向索引:获取索引为-2的元素
print(lst[-2])
# 索引不存在
# print(lst[-99])

2.3 Holen Sie sich mehrere Elemente in die Liste

  • grammatikalisches Format
列表名[start :	stop : step ]
  • Slice-Operation
Slice-Operation Wortlaut erklären
Ergebnis des Schneidens Eine Kopie des ursprünglichen Listenfragments
Auswahl an Scheiben [ Start stop ] links geschlossen rechts offen
Die Schrittgröße ist standardmäßig 1 [Start: Stopp] oder [Start: Stopp:]
Wenn Schritt eine positive Zahl ist, beginnen Sie am Anfang und schneiden Sie rückwärts ab [: Stopp: Schritt] Das erste Element des Slice ist standardmäßig das erste Element der Liste
[Anfang: : Schritt] Das letzte Element des Slice ist standardmäßig das letzte Element der Liste
Wenn Schritt eine negative Zahl ist , wird vom Anfang an vorwärts gekürzt [: Stopp: Schritt] Das erste Element des Slice ist standardmäßig das letzte Element der Liste
[Anfang: : Schritt] Das letzte Element des Slice ist standardmäßig das erste Element der Liste
  • Code-Demo
# 切片操作
lst = [10, 20, 30, 40, 50, 60, 70, 80]
# 打印输出:start=1,stop=6,step=1,产生新列表
print(lst[1:6:1])
print("原列表",id(lst))
print("切列表",id(lst[1:6:1]))
# 默认步长为1
print(lst[1:6])
print(lst[1:6:])
# 正向切片
print(lst[:6:2])
print(lst[1::2])
# 逆向切片
lst = [10, 20, 30, 40, 50, 60, 70, 80]
print(lst[::-1])
print(lst[6:1:-1])
print(lst[:1:-1])
print(lst[6::-1])

2.4 Bestimmen Sie, ob das angegebene Element in der Liste vorhanden ist

  • grammatikalisches Format
元素	in	列表名
元素	not in	列表名
  • Code-Demo
lst = [10, 20, "Python", "Hello"]
print(10 in lst)
print(100 in lst)
print("Hello" in lst)
print("java" in lst)

2.5 Durchlaufen von Listenelementen

  • grammatikalisches Format
for 迭代变量	in	列表名	:
	操作
  • Code-Demo
lst = [10, 20, "Python", "Hello"]
# 将列表元素依次输出
for i in lst:
    print(i)

3. Operation von Listenelementen hinzufügen

  • Operationsmethode hinzufügen
Methode/Sonstiges Operationsbeschreibung
append() Fügt ein Element am Ende der Liste hinzu, ohne ein neues Objekt zu erzeugen
verlängern() Fügen Sie am Ende der Liste mindestens ein Element hinzu
einfügen() Fügen Sie an einer beliebigen Stelle in der Liste ein Element hinzu
Scheibe Fügen Sie mindestens ein Element an einer beliebigen Stelle in der Liste hinzu
  • Code-Demo
# append():向列表的末尾添加一个元素—最常用
lst = [10, 20, 30]
print("添加元素之前:", id(lst), lst)
lst.append(100)
print("添加元素之后:", id(lst), lst)

lst2 = ["hello", "world"]
# 将lst2作为一个元素添加到列表的末尾
lst.append(lst2)
print(lst)
# 将lst2元素依次添加到列表末尾
lst.extend(lst2)
print(lst)

# 在任意位置上添加一个元素
lst.insert(1, 90)
print(lst)

lst3 = [30, 40, "hello", "python"]
# 切片:在任意位置上添加N多个元素
lst[1::]=lst3
print(lst)

Viertens der Löschvorgang von Listenelementen

  • Operationsmethode hinzufügen
Methode/Sonstiges Operationsbeschreibung
entfernen() Entfernen Sie ein Element aus der Liste. Wenn doppelte Elemente vorhanden sind, entfernen Sie nur das erste. Wenn das Listenelement nicht vorhanden ist, löst ValueError eine Ausnahme aus
Pop() Entfernen Sie das Element entsprechend dem Index. Wenn der Index nicht vorhanden ist, wird eine IndexError-Ausnahme ausgelöst
Scheibe Das Löschen mindestens eines Elements führt zu einem neuen Listenobjekt
klar() Löschen Sie die Liste
des Liste löschen
  • Code-Demo
lst = [10, 20, 30, 40, 50, 60, 30]
print("原列表:", lst)
# remove():从列表中移除一个元素,如果有重复元素,只移除第一个
lst.remove(30)
print("原列表:", lst)
# 列表元素不存在,ValueError抛出异常
# lst.remove(100)

# pop():根据索引删除元素
lst.pop(2)
print(lst)
# 如果指定的索引位置不存在,将抛出IndexError异常
# lst.pop(50)
# 不写参数,会将列表中的最后一个元素删除
lst.pop()
print(lst)

# 切片:删除至少一个元素,将会产生一个新的列表对象
new_list = lst[1:3]
print("原列表:", id(lst), lst)
print("新列表:", id(new_list), new_list)
# 不产生新的列表对象,而是删除原列表中的内容
lst[1:3] = []
print(lst)

# clear():清除列表中的所有元素
lst.clear()
print(lst)

# del语句:删除列表
del lst

Fünftens die Änderungsoperation von Listenelementen

  • weist dem Element am angegebenen Index einen neuen Wert zu
  • weist dem angegebenen Slice einen neuen Wert zu
  • Code-Demo
list = [10, 20, 30, 40]
# 一次修改一个值
list[2] = 100
print(list)  # [10, 20, 100, 40]
# 切片修改
list[1:3:] = [22, 33]
print(list)

6. Sortiervorgang von Listenelementen

  • Sortieroperationsmethode
Methode/Sonstiges Operationsbeschreibung
Sortieren() Rufen Sie die Methode sort() auf, und alle Elemente in der Liste werden standardmäßig in absteigender Reihenfolge sortiert. Sie können in absteigender Reihenfolge sortieren , indem Sie „reverse=True“
angeben und die ursprüngliche Liste bearbeiten, ohne ein neues Listenobjekt zu generieren
sortiert() Rufen Sie die integrierte Funktion sorted() auf,
um in absteigender Reihenfolge zu sortieren, indem Sie „reserve=True“ angeben. Die ursprüngliche Liste ändert sich nicht und es wird ein neues Listenobjekt generiert
  • Code-Demo
lst = [20, 40, 10, 98, 54]
print('排序前列表', lst)  # 排序前列表 [20, 40, 10, 98, 54]
# 开始排序,调用列表对象的sort方法,默认是升序
lst.sort()
print('排序后列表', lst)  # 排序后列表 [10, 20, 40, 54, 98]
lst.sort(reverse=True)
print('新排序列表', lst)  # 新排序列表 [98, 54, 40, 20, 10]
lst.sort(reverse=False)
print('新排序列表', lst)  # 新排序列表 [10, 20, 40, 54, 98]

# 使用内置函数sorted()对列表进行排序,将产生一个新的列表对象
lst2 = sorted(lst)
print(lst2)  # [10, 20, 40, 54, 98]
lst2 = sorted(lst, reverse=True)
print(lst2)  # [98, 54, 40, 20, 10]

Sieben, Listengenerierung

Listengenerierungsformel, auch „Formel zum Generieren von Listen“ genannt

  • Grammatische Strukturen
[ 表示列表元素的表达式 for 自定义变量 in 可迭代对象 ]
[ i*i for i in range(1,10) ]
  • Code-Demo
lst = [i for i in range(1, 10)]
print(lst)
lst2 = [i * i for i in range(1, 10)]
print(lst2)

Ich denke du magst

Origin blog.csdn.net/polaris3012/article/details/130497453
Empfohlen
Rangfolge