Diese mysteriösen Bewegungen in der Python-Sammlung

Diese mysteriösen Bewegungen in der Python-Sammlung
Python hat 3 große Datentypen, Listen, Wörterbücher und Mengen . Ich habe bereits über Listen und Wörterbücher gesprochen. Heute werden wir über Mengen in Python sprechen.

Es gibt nicht viele Python-Bücher, die vollständig und umfassend über Sammlungen sprechen, und selbst wenn es einige gibt, werden sie nur kurz erwähnt, und es wird nicht viel geschrieben. Der größte Teil der Einführung in Python-Datenstrukturen wird von Listen und den beiden wichtigsten Einflussfaktoren für Wörterbücher abgedeckt . Es scheint, dass Sammlungen in der Python-Welt sehr unbeliebt sind. Tatsächlich sind die Dinge in Sammlungen sehr nützlich und haben spezifische anwendbare Szenarien, insbesondere in Daten. Zeigen Sie im Umgang damit Ihre Fähigkeiten.

Apropos Mengen, viele Leute müssen an Mengen in der Mengenlehre gedacht haben. Der richtige Python hat dieses Konzept eingeführt. In Python gibt es zwei Arten von Sammlungen: veränderbare Sammlungen und unveränderliche Sammlungen.

1. Einführung in
Sammlungen Sammlungen unterscheiden sich von Listen ([]) und Wörterbüchern ({}). Es gibt kein spezielles grammatikalisches Format. Listen und Wörterbücher können mit ihren eigenen Factory-Methoden list () bzw. dict () erstellt werden. Es gibt nur eine Methode für Sammlungen Es ist auch die einzige Methode - die Factory-Methoden set () und frozenset () der Sammlung :

  • set ()
    set ist ungeordnet und nicht repetitiv. Es ist variabel und verfügt über Methoden wie add () und remove (). Da es veränderlich ist, gibt es keinen Hashwert. Zu den Grundfunktionen gehören das Testen von Beziehungen und das Eliminieren doppelter Elemente. Das festgelegte Objekt unterstützt auch mathematische Operationen wie Vereinigung, Schnittmenge, Differenz und sysmmetrische Differenz.

  • frozenset ()
    rozenset ist eine eingefrorene Menge. Sie ist unveränderlich und hat einen Hashwert. Der Vorteil ist, dass sie als Schlüssel eines Wörterbuchs oder als Element anderer Mengen verwendet werden kann. Der Nachteil ist, dass es nach seiner Erstellung nicht mehr geändert werden kann. Es gibt keine Methoden zum Hinzufügen und Entfernen.

In der folgenden Abbildung sind alle Operatoren im Satz aufgeführt
Diese mysteriösen Bewegungen in der Python-Sammlung

1) Die festgelegte Aufgabe, die
Diese mysteriösen Bewegungen in der Python-Sammlung
aufmerksame Schüler finden müssen, ist, was ein paar Buchstaben weniger , zwei Wiederholungen o, drei Wiederholungen l, wie es nur einen gab. Ja, dies ist ein sehr wichtiges Konzept für die Wiederholung, das sehr nützlich ist, insbesondere wenn die wiederholten Elemente in der Liste entfernt werden. Dies
kann in einem Zug erfolgen. Es ist wirklich ein frischer Trick, am ganzen Himmel zu essen, wie zum Beispiel:

print set(['a','c','c','z','y','a','b'])

set (['a', 'y', 'c', 'z', 'b']) # Wiederholte Elemente werden entfernt
.

2) So greifen Sie auf den Wert
in der Auflistung zu, um zu überprüfen, ob sich ein Element in der Auflistung #in und nicht in befindet
Diese mysteriösen Bewegungen in der Python-Sammlung

Durchlaufen, um die Sammlungsmitglieder # für anzuzeigen

for element in s:
  print element

3). Aktualisieren und löschen

s.add('z')
print s

set (['e', 'd', 'H', 'l', 'o', 'r', 'W', 'z']) # More'z '

s.remove('W')
print s

set (['e', 'd', 'H', 'l', 'o', 'r', 'z']) # Entfernen Sie W.

2.
Sammeln Sie mehrere gemeinsame Operationen. 1) Vereinigung und Zusammenführung

s=set('123')
print s
>>set(['1', '3', '2'])
t=set('345')
print t
>>set(['3', '5', '4'])

print s|t
>>set(['1', '3', '2', '5', '4'])//s和t并集是有所有s的元素和所有t的元素

Diese mysteriösen Bewegungen in der Python-Sammlung

2) Intersection // Konjunktionsoperation ähnlicher Mengen

s=set('123')
print s
>>set(['1', '3', '2'])
t=set('345')
print t
>>set(['3', '5', '4'])

print s&t
>>set(['3'])

Diese mysteriösen Bewegungen in der Python-Sammlung
3) Differenzkomplement // Relative Komplementmenge
Die Differenzkomplementierung zweier Mengen s und t, dh die neue Menge gehört nur zu s, nicht zu t

s=set('123')
print s
>>set(['1', '3', '2'])
t=set('345')
print t
>>set(['3', '5', '4'])

print s-t
>>set(['1', '2'])
print t-s
>>set(['5', '4'])

4) Symmetrische Differenz // Exklusives ODER in ähnlicher Menge

s=set('123')
print s
>>set(['1', '3', '2'])
t=set('345')
print t
>>set(['3', '5', '4'])

print s^t
>>set(['1', '2', '5', '4'])

Fazit:
Nachdem ich so viel gesagt habe, möchte ich Ihnen ein kleines Beispiel geben, um die Macht der Sammlungen zu kennen. Zum Beispiel haben wir 3 Listen der besten Studenten in den Jahren 2014, 2015 und 2016, zum Beispiel:
students_2014 = ['jack', 'james', 'lisa ',' Leo ',' Tom ',' Wang ',' Lee ']
Studenten_2015 = [' Jane ',' James ',' Sean ',' Leo ',' Wang ',' Lari ']
Studenten_2016 = [' Sam ',' max ',' larisa ',' Yan ',' leo ',' jack ']

Wir möchten wissen, wer der beste Schüler in den aufeinander folgenden Drucksätzen 2014 und 2015
(Studenten_2014) und Sätzen (Studenten_2015) ist.

set (['james', 'wang', 'leo'])

Wir möchten wissen, wer der beste Schüler in Folge ist. 2014, 2015, 2016
Drucksatz (Studenten_2014) & Satz (Studenten_2015) & Satz (Studenten_2016)

set (['leo'])

Wir möchten wissen, wer 2014 der beste Schüler war, aber in den nächsten zwei Jahren nicht hart studiert und nicht in die beste Liste der
Drucksätze 2015 und 2016 (Studenten_2014) -Sätze (Studenten_2015) -Sätze (Studenten_2016) aufgenommen wurde

set (['lisa', 'lee', 'tom'])

Stellen Sie sich vor, wenn die Liste 1000 Elemente enthält, ist es einfach, mit diesem Trick zu filtern?

Ich denke du magst

Origin blog.51cto.com/15009341/2553638
Empfohlen
Rangfolge