Einführung in die Python-Programmierung (010) – Sammlungsoperationen

Einführung in die Python-Programmierung (010) – Sammlungsoperationen

Mengen in Python ähneln Mengen in der Mathematik und werden zum Speichern eindeutiger Elemente verwendet. Es gibt zwei Arten von veränderlichen Mengen (Sets) und unveränderlichen Mengen (Frozenset).

Formal werden alle Elemente einer Sammlung in geschweifte Klammern {} gesetzt und zwei benachbarte Elemente werden durch ein Komma (,) getrennt.

1. Eigenschaften von Sammlungen

Sammlungen haben die folgenden Eigenschaften:

(1) Kann mehrere Daten aufnehmen;
(2) Kann verschiedene Datentypen aufnehmen;
(3) Daten werden in der falschen Reihenfolge gespeichert (Tiefstellungsindex wird nicht unterstützt);
(4) Es dürfen keine doppelten Daten vorhanden sein;
(5) Kann geändert werden (Elemente hinzufügen oder löschen usw.)
(6) Unterstützung für Schleife.

Die Definitionen von Mengen, Listen, Tupeln, Strings usw. sind grundsätzlich gleich:

(1) Verwenden Sie eckige Klammern für Listen: [ ]
(2) Verwenden Sie Klammern für Tupel: ( )
(3) Verwenden Sie einfache oder doppelte Anführungszeichen für Zeichenfolgen: „ “
(4) Verwenden Sie geschweifte Klammern für Sammlungen: { }

Hinweis: Sammlungen sind änderbare Datentypen, die Elemente in der Sammlung müssen jedoch von nicht änderbaren Typen sein. Das heißt: Die Elemente in der Sammlung können nur numerische Werte, Zeichenfolgen, Tupel usw. sein.

2. Erstellen Sie eine Sammlung

Mengen können mit geschweiften Klammern {} oder der Funktion set() erstellt werden. Hinweis: Um eine leere Sammlung zu erstellen, müssen Sie set() anstelle von {} verwenden, da {} zum Erstellen eines leeren Wörterbuchs verwendet wird.

1. Verwenden Sie {}, um eine Sammlung zu erstellen

Das Syntaxformat ist wie folgt:

setname = {
    
    element1, element2, ... , elementn}

Hinweis: Mit dieser Methode kann keine leere Sammlung erstellt werden.

Zum Beispiel:

set1 = {
    
    1,2,3,4,5}
set2 = {
    
    "Tom","Jerry","John","Black"}
set3 = {
    
    }  # set3的类型为字典(dict)
print(set1)
print(set2)
print(type(set2))
print(set3)
print(type(set3))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    1, 2, 3, 4, 5}
{
    
    'Black', 'John', 'Jerry', 'Tom'}
<class 'set'>
{
    
    }
<class 'dict'>

2. Verwenden Sie die Funktion set(), um eine Sammlung zu erstellen

Verwenden Sie die Funktion set(), um eine leere Sammlung zu erstellen oder andere iterierbare Objekte wie Listen und Tupel in Mengen umzuwandeln. Das Syntaxformat der Funktion set() lautet wie folgt:

set1 = set()
tuple1 = ("Tom","Jerry","John","Black")
list1 = [1,22,44,20,51]
set2 = set(tuple1)
set3 = set(list1)
print(set1)
print(type(set1))
print(set2)
print(type(set2))
print(set3)
print(type(set3))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set()
<class 'set'>
{
    
    'Black', 'Jerry', 'Tom', 'John'}
<class 'set'>
{
    
    1, 44, 51, 20, 22}
<class 'set'>

Mengen und Listen sind sehr ähnlich. Die Unterschiede zwischen den beiden sind wie folgt:

(1) In Sammlungen können nur unveränderliche Objekte gespeichert werden, sodass die Elemente der Sammlung keine Listen oder Mengen, sondern Tupel sein können.

Beispiel 1: Das folgende Programm meldet einen Fehler, da die Liste eine Variablensequenz ist.

set3 = {
    
    [1,2],3}
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 3, in <module>
    set3 = {
    
    [1,2],3}
TypeError: unhashable type: 'list'

Beispiel 2: Im unten gezeigten Programm sind die Tupel unveränderliche Sequenzen.

set3 = {
    
    (1,2),3}
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    3, (1, 2)}

Beispiel 3: Das folgende Programm meldet einen Fehler, da es sich bei der Menge um eine Variablensequenz handelt.

set3 = {
    
    {
    
    1,2},3}
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 1, in <module>
    set3 = {
    
    {
    
    1,2},3}
TypeError: unhashable type: 'set'

Beispiel 4: Im unten gezeigten Programm ist Frozenset eine unveränderliche Sequenz.

set1 = frozenset({
    
    1,2})
set2 = {
    
    set1,3}
print(set1)
print(type(set1))
print(set2)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
frozenset({
    
    1, 2})
<class 'frozenset'>
{
    
    3, frozenset({
    
    1, 2})}

(2) Die in der Sammlung gespeicherten Objekte sind ungeordnet (werden nicht in der Reihenfolge gespeichert, in der die Elemente eingefügt werden), und Indizierung und Slicing werden nicht unterstützt.

Zum Beispiel:

set1 = {
    
    1,2,3,4,5}
print(set1[2])

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 2, in <module>
    print(set1[2])
TypeError: 'set' object is not subscriptable

(3) Doppelte Elemente können nicht in der Sammlung angezeigt werden. Wenn während der Definition doppelte Tupel angezeigt werden, werden diese automatisch dedupliziert und gespeichert.

Zum Beispiel:

set1 = {
    
    1,1,2,2,3,3}
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    1, 2, 3}

2. Änderung der Sammlungen

Da Sammlungen ungeordnet sind, unterstützen Sammlungen keinen abonnierten Indexzugriff. Aber Sets dürfen wie Listen geändert werden. Sammlungen unterstützen die folgenden Formen von Änderungsvorgängen:

(1) Neue Elemente hinzufügen;
(2) Elemente entfernen;
(3) Elemente nach dem Zufallsprinzip aus der Menge entfernen;
(4) Die Menge leeren;
(5) Den Unterschied zwischen den beiden Mengen beseitigen;
(6) Die beiden Mengen zusammenführen;
( 7) Zählen Sie die Anzahl der Sammlungselemente.

1. Fügen Sie der Sammlung neue Elemente hinzu

(1) Verwenden Sie die Methode add(), um das angegebene Element zur Sammlung hinzuzufügen. Das Syntaxformat ist wie folgt:

setname.add(元素)

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black"}
set1.add("Rose")
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Rose', 'Tom', 'Black', 'Jerry', 'John'}

(2) Fügen Sie über die update()-Methode eine Sequenz zur aktuellen Sammlung hinzu. Das Syntaxformat ist wie folgt:

setname.update(序列)

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Zhangsan","Lisi"}
print(set1)
print(set2)
set1.update(set2)
print(set1)
print(set2)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Tom', 'Rose', 'Black', 'John', 'Jerry', 'White'}
{
    
    'Zhangsan', 'Lisi'}
{
    
    'Zhangsan', 'Lisi', 'Tom', 'Rose', 'Black', 'John', 'Jerry', 'White'}
{
    
    'Zhangsan', 'Lisi'}

2. Elemente löschen

(1) Die Methode remove() entfernt das angegebene Element aus der Sammlung. Das Syntaxformat ist wie folgt:

setname.remove(元素)

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black"}
set1.remove("John")
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Black', 'Tom', 'Jerry'}

(2) Verwenden Sie die del-Anweisung, um die gesamte Sammlung zu löschen. Das Syntaxformat ist wie folgt:

del setname

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
print(set1)
del set1
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'White', 'John', 'Tom', 'Rose', 'Black', 'Jerry'}
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 4, in <module>
    print(set1)
NameError: name 'set1' is not defined

3. Elemente nach dem Zufallsprinzip aus der Menge entfernen (und gleichzeitig das Element aus der Menge löschen)

Verwenden Sie die Methode pop(), um das erste Element aus der Sammlung zu entfernen. Gleichzeitig wird die Sammlung selbst verändert und Elemente entfernt. Das Syntaxformat der pop()-Methode lautet wie folgt:

setname.pop()

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
print(set1)
a=set1.pop()
print(a)
print(set1)
a=set1.pop()
print(a)
print(set1)
print(a)
a=set1.pop()
print(set1)
print(a)
a=set1.pop()
print(a)
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'White', 'Tom', 'Jerry', 'Black', 'Rose', 'John'}
White
{
    
    'Tom', 'Jerry', 'Black', 'Rose', 'John'}
Tom
{
    
    'Jerry', 'Black', 'Rose', 'John'}
Tom
{
    
    'Black', 'Rose', 'John'}
Jerry
Black
{
    
    'Rose', 'John'}

4. Löschen Sie die Sammlung

Die Methode clear() kann die Sammlung löschen. Das Syntaxformat ist wie folgt:

setname.clear()

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
print(set1)
set1.clear()
print(set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Jerry', 'White', 'Tom', 'John', 'Black', 'Rose'}
set()

5. Löschen Sie die Differenz zwischen zwei Sätzen

Vergleichen Sie Satz 1 und Satz 2. Löschen Sie in Satz 1 dieselben Elemente wie in Satz 2. Satz 1 wird geändert, Satz 2 bleibt unverändert. Das Syntaxformat ist wie folgt:

setname1.difference_update(setname2)

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "John","Ligang","White","Zhangjing"}
print(set1)
print(set2)
set1.difference_update(set2)
print(set1)
print(set2)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Tom', 'Jerry', 'White', 'Rose', 'John', 'Black'}
{
    
    'Ligang', 'John', 'Zhangjing', 'White'}
{
    
    'Tom', 'Jerry', 'Rose', 'Black'}
{
    
    'Ligang', 'John', 'Zhangjing', 'White'}

6. Führen Sie zwei Sammlungen zusammen

Kombinieren Sie Satz 1 und Satz 2 zu einem neuen Satz. Satz 1 und Satz 2 bleiben unverändert. Das Syntaxformat ist wie folgt:

setname1.union(setname2)

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "John","Ligang","White","Zhangjing"}
print(set1)
print(set2)
set3 = set1.union(set2)
print(set1)
print(set2)
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'John', 'Jerry', 'Black', 'White', 'Rose', 'Tom'}
{
    
    'Ligang', 'John', 'White', 'Zhangjing'}
{
    
    'John', 'Jerry', 'Black', 'White', 'Rose', 'Tom'}
{
    
    'Ligang', 'John', 'White', 'Zhangjing'}
{
    
    'John', 'Jerry', 'Black', 'Ligang', 'White', 'Rose', 'Tom', 'Zhangjing'}

3. Durchlaufen von Sammlungen

(1) Sammlungen unterstützen keine Indexindizierung, Sie können jedoch eine for-Schleife verwenden, um die Elemente in der Sammlung zu durchlaufen. Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
for x in set1:print(x)
    
运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Tom
John
White
Rose
Black
Jerry

(2) Finden Sie heraus, ob ein Element in der Menge vorhanden ist

Verwenden Sie in und nicht in, um zu bestimmen, ob ein Element in einer Menge vorhanden ist. Das Format ist wie folgt:

element in setname

Zum Beispiel:

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
print("Jerry" in set1)
print("JERRY" in set1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
True
False

4. Vereinigungs-, Schnitt- und Differenzoperationen von Mengen

Die Schnittoperation von Mengen verwendet das Symbol [&], die Vereinigungsoperation von Mengen verwendet das Symbol [|] und die Differenzoperation von Mengen verwendet das Symbol [-]. Die Ergebnisse dieser Operationen generieren neue Sätze ohne Auswirkungen auf die ursprünglichen Sätze.

1. Schnittoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1 & set2
print(set1)
print(set2)
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Tom', 'Black', 'Jerry', 'John', 'White', 'Rose'}
{
    
    'Jerry', 'ZhangMing', 'LiuTao', 'Black'}
{
    
    'Jerry', 'Black'}

2. Unionsoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1 | set2
print(set1)
print(set2)
print(set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Tom', 'John', 'White', 'Jerry', 'Rose', 'Black'}
{
    
    'Jerry', 'LiuTao', 'Black', 'ZhangMing'}
{
    
    'LiuTao', 'Tom', 'White', 'John', 'ZhangMing', 'Jerry', 'Rose', 'Black'}

3. Differenzoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1 - set2
set4 = set2 - set1
print(set1)
print(set2)
print(set3)
print(set4)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{
    
    'Jerry', 'John', 'Tom', 'Rose', 'Black', 'White'}
{
    
    'Jerry', 'LiuTao', 'ZhangMing', 'Black'}
{
    
    'Tom', 'Rose', 'John', 'White'}
{
    
    'LiuTao', 'ZhangMing'}

4. Verwenden Sie Methoden, um Vereinigungs-, Schnitt- und Differenzoperationen für Mengen durchzuführen

(1) Schnittoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1.intersection(set2)
print("set1:",set1)
print("set2:",set2)
print("set3:",set3)
set1.intersection_update(set2)
print("set1:",set1)
print("set2:",set2)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set1: {
    
    'Jerry', 'Rose', 'Black', 'John', 'Tom', 'White'}
set2: {
    
    'Black', 'Jerry', 'ZhangMing', 'LiuTao'}
set3: {
    
    'Jerry', 'Black'}
set1: {
    
    'Jerry', 'Black'}
set2: {
    
    'Black', 'Jerry', 'ZhangMing', 'LiuTao'}

(2) Unionsoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1.union(set2)
print("set1:",set1)
print("set2:",set2)
print("set3:",set3)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set1: {
    
    'Tom', 'Black', 'Jerry', 'White', 'Rose', 'John'}
set2: {
    
    'Jerry', 'Black', 'LiuTao', 'ZhangMing'}
set3: {
    
    'Tom', 'Black', 'Jerry', 'ZhangMing', 'LiuTao', 'White', 'Rose', 'John'}

(3) Differenzoperation von Mengen

set1 = {
    
    "Tom","Jerry","John","Black","White","Rose"}
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = set1.difference(set2)
print("set1:",set1)
print("set2:",set2)
print("set3:",set3)
set1.difference_update(set2)
print("set1:",set1)
print("set2:",set2)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set1: {
    
    'Jerry', 'John', 'Tom', 'Rose', 'Black', 'White'}
set2: {
    
    'Jerry', 'Black', 'ZhangMing', 'LiuTao'}
set3: {
    
    'White', 'Tom', 'Rose', 'John'}
set1: {
    
    'John', 'Tom', 'Rose', 'White'}
set2: {
    
    'Jerry', 'Black', 'ZhangMing', 'LiuTao'}

5. Sammlung einfrieren

Eine eingefrorene Sammlung ist lediglich eine unveränderliche Version des Python-Set-Objekts. set kann die Elemente einer Sammlung jederzeit ändern, aber die Elemente einer eingefrorenen Sammlung bleiben nach der Erstellung unverändert. Daher kann eine eingefrorene Menge als Schlüssel in einem Wörterbuch oder als Element einer anderen Menge verwendet werden. Wie eine Menge ist sie nicht geordnet (Elemente sind nicht indizierbar).

Die Rolle eingefrorener Sammlungen:

(1) In der Beziehung zwischen Mengen gibt es Situationen, in denen die Elemente in einer Menge eine andere Menge sind, die gewöhnliche Menge (die Menge) selbst jedoch variabel ist, sodass ihre Instanzen nicht in einer anderen Menge (der Menge in der Menge) platziert werden können muss von unveränderlichem Typ sein).

(2) Eingefrorene Sammlungen bieten die Funktion unveränderlicher Sammlungen. Wenn eine Sammlung unveränderlich ist, erfüllt sie die Anforderungen eines Elements in einer Sammlung und kann in eine andere Sammlung eingefügt werden.

Verwenden Sie die Funktion Frozenset(), um eine eingefrorene Sammlung zurückzugeben. Nach dem Einfrieren können der Sammlung keine Elemente hinzugefügt oder daraus gelöscht werden. Das Syntaxformat der Funktion Frozenset() lautet wie folgt:

frozenset([iterable])

说明:1)参数 iterable 是可选的,不传入时会创建一个空的冻结集合,传入时由 iterable 中的元素初始化。2)参数 iterable 是一个可迭代对象(比如列表、字典、元组、字符串等),将此对象转为一个冻结集合。

Zum Beispiel:

set1 = frozenset()
set2 = {
    
    "Jerry","ZhangMing","Black","LiuTao"}
set3 = frozenset(set2)
set4 = frozenset([1,2,3,4])
print("set1:",set1)
print(type(set1))
print("set3:",set3)
print(type(set3))
print("set4:",set4)
print(type(set4))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set1: frozenset()
<class 'frozenset'>
set3: frozenset({
    
    'LiuTao', 'Black', 'Jerry', 'ZhangMing'})
<class 'frozenset'>
set4: frozenset({
    
    1, 2, 3, 4})
<class 'frozenset'>

Eine eingefrorene Sammlung ist ein unveränderliches, ungeordnetes Objekt, an dem keine Vorgänge wie Hinzufügen, Ändern, Sortieren und Indexschneiden ausgeführt werden. Sie weist jedoch auch einige Merkmale einer Sammlung auf und kann Sammlungsoperationen wie Vereinigung, Schnittmenge usw. ausführen. und Unterschied.

Zum Beispiel:

set1 = frozenset({
    
    "Jerry","ZhangMing","Black","LiuTao"})
set2 = frozenset(["Tom","Jerry","Jack"])
set3 = set1 & set2
set4 = set1 | set2
set5 = set1 - set2
print("set1:",set1)
print(type(set1))
print("set2:",set2)
print(type(set2))
print("set3:",set3)
print(type(set3))
print("set4:",set4)
print(type(set4))
print("set5:",set5)
print(type(set5))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
set1: frozenset({
    
    'LiuTao', 'Black', 'Jerry', 'ZhangMing'})
<class 'frozenset'>
set2: frozenset({
    
    'Tom', 'Jerry', 'Jack'})
<class 'frozenset'>
set3: frozenset({
    
    'Jerry'})
<class 'frozenset'>
set4: frozenset({
    
    'Tom', 'Jerry', 'ZhangMing', 'LiuTao', 'Black', 'Jack'})
<class 'frozenset'>
set5: frozenset({
    
    'LiuTao', 'Black', 'ZhangMing'})
<class 'frozenset'>

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/132131380
Recomendado
Clasificación