Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich gemeinsame Referenzen vermeiden, wenn ich die „fromkeys'-Methode von Python verwende?

Wie kann ich gemeinsame Referenzen vermeiden, wenn ich die „fromkeys'-Methode von Python verwende?

Susan Sarandon
Freigeben: 2024-12-14 20:25:18
Original
853 Leute haben es durchsucht

How Can I Avoid Shared References When Using Python's `fromkeys` Method?

Verstehen der fromkeys-Methode und ihrer Einschränkungen

Beim Initialisieren eines Wörterbuchs mit der fromkeys-Methode ist es wichtig, sich seines Verhaltens bewusst zu sein Einzelelementargumente. Die Übergabe einer Liste als zweites Argument führt dazu, dass alle Wörterbuchwerte auf dasselbe Listenobjekt verweisen.

Unbeabsichtigtes Teilen vermeiden: Alternative Ansätze

Um ein unbeabsichtigtes Teilen von Werten zu verhindern, Erwägen Sie die Verwendung alternativer Methoden:

  • Dict Comprehension (Python 2.7):

    data = {k: [] for k in range(2)}
    Nach dem Login kopieren
  • Listenverständnis mit Dict Constructor:

    data = dict([(k, []) for k in range(2)])
    Nach dem Login kopieren
  • Generator-Ausdruck mit Dict (Python 2.4-2.6):

    data = dict((k, []) for k in range(2))
    Nach dem Login kopieren

Einfaches Beispiel: Hinzufügen eines Werts zu einem bestimmten Schlüssel

Der folgende Code demonstriert das beabsichtigtes Verhalten:

data = {0: [], 1: []}
data[1].append('hello')
print(data)
# Output: {0: [], 1: ['hello']}
Nach dem Login kopieren

Mithilfe einer der vorgeschlagenen Methoden können Sie ein Wörterbuch leerer Listen initialisieren und einzelne ändern Schlüsselwerte, ohne die anderen zu beeinflussen.

Das obige ist der detaillierte Inhalt vonWie kann ich gemeinsame Referenzen vermeiden, wenn ich die „fromkeys'-Methode von Python verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage