Wann sollte ich ein Wörterbuch, eine Liste oder ein Set verwenden?
Gibt es Szenarien, die für jeden Datentyp besser geeignet sind?
Wann sollte ich ein Wörterbuch, eine Liste oder ein Set verwenden?
Gibt es Szenarien, die für jeden Datentyp besser geeignet sind?
A list
hält Ordnung, dict
et set
nicht: Wenn Ihnen die Ordnung wichtig ist, müssen Sie daher die list
(natürlich nur, wenn die Auswahl an Behältern auf diese drei beschränkt ist ;-) ).
dict
assoziiert jeden Schlüssel mit einem Wert, während list
et set
nur Werte enthalten: natürlich sehr unterschiedliche Anwendungsfälle.
set
erfordert, dass die Elemente hashfähig sind, list
nicht: Wenn Sie nicht hashbare Gegenstände haben, können Sie daher set
und muss stattdessen list
.
set
verbietet Duplikate, list
nicht: auch das ist ein entscheidender Unterschied. (Ein "Multiset", das Duplikate in eine andere Zählung für mehr als einmal vorhandene Elemente umwandelt, ist zu finden in collections.Counter
-- Sie könnten eine als dict
wenn Sie aus irgendeinem Grund nicht importieren konnten collections
oder, in Python vor 2.7, als collections.defaultdict(int)
wobei die Elemente als Schlüssel und der zugehörige Wert als Zähler verwendet werden).
Prüfung auf Zugehörigkeit eines Wertes zu einer set
(oder dict
(für Schlüssel) ist rasend schnell (es dauert etwa eine konstante, kurze Zeit), während es bei einer Liste im mittleren und schlimmsten Fall proportional zur Länge der Liste dauert. Wenn Sie also hashbare Elemente haben, sich nicht um die Reihenfolge oder Duplikate kümmern und eine schnelle Überprüfung der Zugehörigkeit wünschen, set
ist besser als list
.
Wenn Sie eine ungeordnete Sammlung von eindeutigen Elementen wünschen, verwenden Sie eine set
. (Zum Beispiel, wenn Sie die Menge aller in einem Dokument verwendeten Wörter suchen).
Wenn Sie eine unveränderliche geordnete Liste von Elementen sammeln wollen, verwenden Sie eine tuple
. (Wenn Sie z. B. ein Paar (Name, Telefonnummer) als Element in einer Menge verwenden möchten, benötigen Sie ein Tupel und keine Liste, da für Mengen unveränderliche Elemente erforderlich sind.)
Wenn Sie eine veränderbare geordnete Liste von Elementen sammeln wollen, verwenden Sie eine list
. (Zum Beispiel, wenn Sie neue Telefonnummern an eine Liste anhängen wollen: [Nummer1, Nummer2, ...]).
Wenn Sie eine Zuordnung von Schlüsseln zu Werten wünschen, verwenden Sie eine dict
. (Zum Beispiel, wenn Sie ein Telefonbuch wünschen, das Namen Telefonnummern zuordnet: {'John Smith' : '555-1212'}
). Beachten Sie, dass die Schlüssel in einem Diktat nicht geordnet sind. (Wenn Sie ein Diktat (Telefonbuch) durchgehen, können die Schlüssel (Namen) in beliebiger Reihenfolge angezeigt werden).
Kurz gesagt, verwenden:
list
- wenn Sie eine geordnete Abfolge von Artikeln benötigen.
dict
- wenn Sie Werte mit Schlüsseln verknüpfen wollen
set
- wenn Sie einzigartige Elemente behalten wollen.
Eine Liste ist eine veränderbare Sequenz, die in der Regel zur Speicherung von Sammlungen homogener Elemente verwendet wird.
Eine Liste implementiert alle gängigen Sequenzoperationen:
x in l
et x not in l
l[i]
, l[i:j]
, l[i:j:k]
len(l)
, min(l)
, max(l)
l.count(x)
l.index(x[, i[, j]])
- Index des 1. Vorkommens von x
en l
(bei oder nach i
und vor j
indeces)Eine Liste implementiert auch alle veränderbaren Sequenzoperationen:
l[i] = x
- Artikel i
de l
wird ersetzt durch x
l[i:j] = t
- Scheibe von l
de i
a j
wird durch den Inhalt der Iterablen ersetzt t
del l[i:j]
- gleich wie l[i:j] = []
l[i:j:k] = t
- die Elemente der l[i:j:k]
werden ersetzt durch diejenigen von t
del l[i:j:k]
- entfernt die Elemente von s[i:j:k]
aus der Listel.append(x)
- Anhänge x
an das Ende der Sequenzl.clear()
- entfernt alle Einträge aus l
(wie bei del l[:]
)l.copy()
- erzeugt eine oberflächliche Kopie von l
(wie bei l[:]
)l.extend(t)
o l += t
- erweitert l
mit dem Inhalt von t
l *= n
- Aktualisierungen l
mit wiederholtem Inhalt n
mall.insert(i, x)
- Einsätze x
in l
bei dem Index, der durch i
l.pop([i])
- ruft den Artikel unter i
und entfernt es auch aus l
l.remove(x)
- entfernen Sie den ersten Eintrag aus l
donde l[i]
ist gleich xl.reverse()
- storniert die Posten von l
an Ort und StelleEine Liste kann als Stapel verwendet werden, indem man die folgenden Methoden einsetzt append
et pop
.
Ein Wörterbuch bildet hashbare Werte auf beliebige Objekte ab. Ein Wörterbuch ist ein veränderbares Objekt. Die wichtigsten Operationen mit einem Wörterbuch sind das Speichern eines Wertes mit einem Schlüssel und das Extrahieren des Wertes anhand des Schlüssels.
In einem Wörterbuch können Sie keine Werte als Schlüssel verwenden, die nicht hashfähig sind, d. h. Werte, die Listen, Wörterbücher oder andere veränderbare Typen enthalten.
Eine Menge ist eine ungeordnete Sammlung eindeutiger hashfähiger Objekte. Eine Menge wird häufig zum Testen der Zugehörigkeit, zum Entfernen von Duplikaten aus einer Sequenz und zum Berechnen mathematischer Operationen wie Schnittmenge, Vereinigung, Differenz und symmetrische Differenz verwendet.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.