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
Susan SarandonOriginal
2024-12-14 20:25:18856Durchsuche

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)}
  • Listenverständnis mit Dict Constructor:

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

    data = dict((k, []) for k in range(2))

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']}

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!

Stellungnahme:
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