Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Sets

Python-Sätze

In diesem Tutorial erfahren Sie alles über Python-Sets. wie sie erstellt werden, Elemente hinzufügen oder entfernen und alle Operationen, die an Sets in Python durchgeführt werden.

Video:Sätze in Python

Ein Satz ist eine ungeordnete Sammlung von Elementen. Jedes Set-Element ist einzigartig (keine Duplikate) und muss unveränderlich sein (kann nicht geändert werden).

Eine Menge selbst ist jedoch veränderlich. Wir können Elemente hinzufügen oder daraus entfernen.

Mengen können auch verwendet werden, um mathematische Mengenoperationen wie Vereinigung, Schnittmenge, symmetrische Differenz usw. durchzuführen.


Python-Sets erstellen

Ein Satz wird erstellt, indem alle Elemente (Elemente) in geschweiften Klammern platziert werden {} , durch Komma getrennt, oder mithilfe des integrierten set() Funktion.

Es kann eine beliebige Anzahl von Elementen haben und sie können von unterschiedlichem Typ sein (Integer, Float, Tuple, String usw.). Aber eine Menge kann keine veränderlichen Elemente wie Listen, Mengen oder Wörterbücher als ihre Elemente haben.

# Different types of sets in Python
# set of integers
my_set = {1, 2, 3}
print(my_set)

# set of mixed datatypes
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

Ausgabe

{1, 2, 3}
{1.0, (1, 2, 3), 'Hello'}

Probieren Sie auch die folgenden Beispiele aus.

# set cannot have duplicates
# Output: {1, 2, 3, 4}
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)

# we can make set from a list
# Output: {1, 2, 3}
my_set = set([1, 2, 3, 2])
print(my_set)

# set cannot have mutable items
# here [3, 4] is a mutable list
# this will cause an error.

my_set = {1, 2, [3, 4]}

Ausgabe

{1, 2, 3, 4}
{1, 2, 3}
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    my_set = {1, 2, [3, 4]}
TypeError: unhashable type: 'list'

Das Erstellen eines leeren Satzes ist etwas schwierig.

Leere geschweifte Klammern {} erstellt ein leeres Wörterbuch in Python. Um einen Satz ohne Elemente zu erstellen, verwenden wir den set() Funktion ohne Argument.

# Distinguish set and dictionary while creating empty set

# initialize a with {}
a = {}

# check data type of a
print(type(a))

# initialize a with set()
a = set()

# check data type of a
print(type(a))

Ausgabe

<class 'dict'>
<class 'set'>

Ändern eines Satzes in Python

Mengen sind veränderlich. Da sie jedoch ungeordnet sind, hat die Indizierung keine Bedeutung.

Wir können nicht auf ein Element einer Menge zugreifen oder es ändern, indem wir Indizierung oder Slicing verwenden. Der festgelegte Datentyp wird nicht unterstützt.

Wir können ein einzelnes Element mit add() hinzufügen -Methode und mehrere Elemente mit update() Methode. Die update() -Methode kann Tupel, Listen, Zeichenfolgen oder andere Mengen als Argument annehmen. In allen Fällen werden Duplikate vermieden.

# initialize my_set
my_set = {1, 3}
print(my_set)

# my_set[0]
# if you uncomment the above line
# you will get an error
# TypeError: 'set' object does not support indexing

# add an element
# Output: {1, 2, 3}
my_set.add(2)
print(my_set)

# add multiple elements
# Output: {1, 2, 3, 4}
my_set.update([2, 3, 4])
print(my_set)

# add list and set
# Output: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4, 5], {1, 6, 8})
print(my_set)

Ausgabe

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Entfernen von Elementen aus einer Menge

Ein bestimmtes Element kann mit den Methoden discard() aus einem Set entfernt werden und remove() .

Der einzige Unterschied zwischen den beiden ist, dass der discard() Die Funktion lässt eine Menge unverändert, wenn das Element nicht in der Menge vorhanden ist. Andererseits die remove() Die Funktion löst in einer solchen Bedingung einen Fehler aus (wenn das Element nicht in der Menge vorhanden ist).

Das folgende Beispiel soll dies veranschaulichen.

# Difference between discard() and remove()

# initialize my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)

# discard an element
# Output: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)

# remove an element
# Output: {1, 3, 5}
my_set.remove(6)
print(my_set)

# discard an element
# not present in my_set
# Output: {1, 3, 5}
my_set.discard(2)
print(my_set)

# remove an element
# not present in my_set
# you will get an error.
# Output: KeyError

my_set.remove(2)

Ausgabe

{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
{1, 3, 5}
Traceback (most recent call last):
  File "<string>", line 28, in <module>
KeyError: 2

Ebenso können wir einen Artikel mit dem pop() entfernen und zurücksenden Methode.

Da es sich bei set um einen ungeordneten Datentyp handelt, gibt es keine Möglichkeit zu bestimmen, welches Element per Popup ausgegeben wird. Es ist völlig willkürlich.

Wir können auch alle Artikel aus einem Set entfernen, indem wir den clear() verwenden Methode.

# initialize my_set
# Output: set of unique elements
my_set = set("HelloWorld")
print(my_set)

# pop an element
# Output: random element
print(my_set.pop())

# pop another element
my_set.pop()
print(my_set)

# clear my_set
# Output: set()
my_set.clear()
print(my_set)

print(my_set)

Ausgabe

{'H', 'l', 'r', 'W', 'o', 'd', 'e'}
H
{'r', 'W', 'o', 'd', 'e'}
set()

Python-Set-Operationen

Mengen können verwendet werden, um mathematische Mengenoperationen wie Vereinigung, Schnittmenge, Differenz und symmetrische Differenz auszuführen. Wir können dies mit Operatoren oder Methoden tun.

Betrachten wir die folgenden zwei Sätze für die folgenden Operationen.

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Vereinigung festlegen

Vereinigung von A und B ist eine Menge aller Elemente aus beiden Mengen.

Union wird mit | durchgeführt Operator. Dasselbe kann mit union() erreicht werden Methode.

# Set union method
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use | operator
# Output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Ausgabe

{1, 2, 3, 4, 5, 6, 7, 8}

Probieren Sie die folgenden Beispiele in der Python-Shell aus.

# use union function
>>> A.union(B)
{1, 2, 3, 4, 5, 6, 7, 8}

# use union function on B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Kreuzung festlegen

Schnittpunkt von A und B ist ein Satz von Elementen, die beiden Sätzen gemeinsam sind.

Die Kreuzung erfolgt mit & Operator. Dasselbe kann mit intersection() erreicht werden Methode.

# Intersection of sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use & operator
# Output: {4, 5}
print(A & B)

Ausgabe

{4, 5}

Probieren Sie die folgenden Beispiele in der Python-Shell aus.

# use intersection function on A
>>> A.intersection(B)
{4, 5}

# use intersection function on B
>>> B.intersection(A)
{4, 5}

Unterschied einstellen

Differenz der Menge B aus Menge A (A - B ) ist eine Menge von Elementen, die nur in A vorkommen aber nicht in B . Ebenso B - A ist eine Menge von Elementen in B aber nicht in A .

Die Differenz wird mit - durchgeführt Operator. Dasselbe kann mit difference() erreicht werden Methode.

# Difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use - operator on A
# Output: {1, 2, 3}
print(A - B)

Ausgabe

{1, 2, 3}

Probieren Sie die folgenden Beispiele in der Python-Shell aus.

# use difference function on A
>>> A.difference(B)
{1, 2, 3}

# use - operator on B
>>> B - A
{8, 6, 7}

# use difference function on B
>>> B.difference(A)
{8, 6, 7}

Symmetrische Differenz festlegen

Symmetrische Differenz von A und B ist eine Menge von Elementen in A und B aber nicht in beiden (mit Ausnahme der Kreuzung).

Symmetrische Differenz wird mit ^ durchgeführt Operator. Dasselbe kann mit der Methode symmetric_difference() erreicht werden .

# Symmetric difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use ^ operator
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Ausgabe

{1, 2, 3, 6, 7, 8}

Probieren Sie die folgenden Beispiele in der Python-Shell aus.

# use symmetric_difference function on A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}

# use symmetric_difference function on B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Andere Python-Set-Methoden

Es gibt viele Set-Methoden, von denen wir einige bereits oben verwendet haben. Hier ist eine Liste aller Methoden, die mit den Set-Objekten verfügbar sind:

Methode Beschreibung
add() Fügt der Menge ein Element hinzu
löschen() Entfernt alle Elemente aus der Menge
copy() Gibt eine Kopie des Satzes zurück
Unterschied() Gibt die Differenz von zwei oder mehr Sätzen als neuen Satz zurück
difference_update() Entfernt alle Elemente einer anderen Menge aus dieser Menge
verwerfen() Entfernt ein Element aus der Menge, wenn es ein Mitglied ist. (Nichts tun, wenn das Element nicht gesetzt ist)
Kreuzung() Gibt den Schnittpunkt zweier Mengen als neue Menge zurück
intersection_update() Aktualisiert den Satz mit der Schnittmenge von sich selbst und einem anderen
istdisjunkt() Gibt True zurück wenn zwei Mengen eine Null-Schnittmenge haben
issubset() Gibt True zurück wenn ein anderer Satz diesen Satz enthält
istsuperset() Gibt True zurück wenn dieser Satz einen anderen Satz enthält
pop() Entfernt ein beliebiges Set-Element und gibt es zurück. Löst KeyError aus wenn die Menge leer ist
entfernen() Entfernt ein Element aus der Menge. Wenn das Element kein Mitglied ist, wird ein KeyError ausgelöst
symmetric_difference() Gibt die symmetrische Differenz zweier Mengen als neue Menge zurück
symmetric_difference_update() Aktualisiert einen Satz mit der symmetrischen Differenz von sich selbst und einem anderen
union() Gibt die Vereinigung von Mengen in einer neuen Menge zurück
update() Aktualisiert die Menge mit der Vereinigung von sich selbst und anderen

Andere Set-Operationen

Mitgliedschaftstest festlegen

Mit dem in können wir testen, ob ein Element in einem Set vorhanden ist oder nicht Schlüsselwort.

# in keyword in a set
# initialize my_set
my_set = set("apple")

# check if 'a' is present
# Output: True
print('a' in my_set)

# check if 'p' is present
# Output: False
print('p' not in my_set)

Ausgabe

True
False

Iteration durch einen Satz

Wir können jedes Element in einem Satz mit einem for durchlaufen Schleife.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

Integrierte Funktionen mit Set

Eingebaute Funktionen wie all() , any() , enumerate() , len() , max() , min() , sorted() , sum() usw. werden häufig mit Sets verwendet, um verschiedene Aufgaben auszuführen.

Funktion Beschreibung
alle() Gibt True zurück wenn alle Elemente der Menge wahr sind (oder wenn die Menge leer ist).
beliebig() Gibt True zurück wenn irgendein Element der Menge wahr ist. Wenn die Menge leer ist, wird False zurückgegeben .
aufzählen() Gibt ein Aufzählungsobjekt zurück. Es enthält den Index und den Wert für alle Elemente des Sets als Paar.
len() Gibt die Länge (die Anzahl der Elemente) im Satz zurück.
max() Gibt das größte Element im Satz zurück.
min() Gibt das kleinste Element im Satz zurück.
sortiert() Gibt eine neue sortierte Liste von Elementen in der Menge zurück (sortiert die Menge selbst nicht).
sum() Gibt die Summe aller Elemente in der Menge zurück.

Python-Frozenset

Frozenset ist eine neue Klasse, die die Eigenschaften einer Menge hat, aber ihre Elemente können nach der Zuweisung nicht mehr geändert werden. Während Tupel unveränderliche Listen sind, sind eingefrorene Mengen unveränderliche Mengen.

Sätze, die veränderbar sind, können nicht gehasht werden, sodass sie nicht als Wörterbuchschlüssel verwendet werden können. Andererseits sind eingefrorene Sätze hashbar und können als Schlüssel zu einem Wörterbuch verwendet werden.

Frozensets können mit der Funktion frozenset() erstellt werden.

Dieser Datentyp unterstützt Methoden wie copy() , difference() , intersection() , isdisjoint() , issubset() , issuperset() , symmetric_difference() und union() . Da es unveränderlich ist, hat es keine Methoden, die Elemente hinzufügen oder entfernen.

# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Probieren Sie diese Beispiele in der Python-Shell aus.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

Python

  1. Python-Datentypen
  2. Python-Operatoren
  3. Python-pass-Anweisung
  4. Python-Funktionsargumente
  5. Python-Wörterbuch
  6. Python-Iteratoren
  7. Python-Schließungen
  8. Python-Datetime
  9. Python – Übersicht
  10. Python - Zahlen