python-dictionary-match-key-Werte in beiden Wörterbüchern
In der unten gezeigten Wörterbücher möchte ich überprüfen ob der key in aa-entspricht Sie den Schlüssel im bb und auch dem Wert entsprechend, es passt in bb oder nicht.Gibt es einen besseren Weg, um dieser code zu schreiben
aa = {'a': 1, 'c': 3, 'b': 2}
bb = {'a': 1, 'b': 2}
for k in aa:
if k in bb:
if aa[k] == bb[k]:
print "Key and value bot matches in aa and bb"
Was ist Ihre gewünschte Ergebnis? Wollen Sie einen einzelnen booleschen Wert, der angibt, ob alle - Tasten in
Hmm... mit Blick auf das Problem mit der Art und Weise, die Sie Durchlaufen
Ich habe irgendwie den Eindruck bekommen, dass jeder andere zu verstehen scheint, was Rajeev will zu tun in den ersten Platz. Doch die Antworten auf völlig unterschiedliche Dinge...
aa
werden, die auch in bb
übereinstimmende Werte haben? Oder einen boolschen Wert pro key? Oder code, der druckt "Key and value bot matches in aa and bb"
einmal für jeden passenden Schlüssel/Wert-paar?Hmm... mit Blick auf das Problem mit der Art und Weise, die Sie Durchlaufen
aa
(Hinweis, das ist das gleiche wie aa.iterkeys()
), dein grundlegender Ansatz ist eigentlich ganz gut. Was tun Sie eigentlich verbessern wollen?Ich habe irgendwie den Eindruck bekommen, dass jeder andere zu verstehen scheint, was Rajeev will zu tun in den ersten Platz. Doch die Antworten auf völlig unterschiedliche Dinge...
InformationsquelleAutor Rajeev | 2012-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden, Sätze zu finden, die alle Entsprechungen:
Den
&
Betreiber hier, haben Sie die Kreuzung der beiden sets; alternativ könnten Sie schreiben:Beachten Sie, dass dies bedeutet vollständige Kopien der beiden dicts also, wenn diese sehr groß sind, Sie dies möglicherweise nicht der beste Ansatz sein.
Eine Verknüpfung wäre, um nur testen Sie die Tasten:
Hier nur kopieren, die keys der einzelnen dict reduzieren den Speicherbedarf.
Bei der Verwendung von Python 2.7, die dict-Typ enthält zusätzliche Methoden zu erstellen, die benötigten sets direkt:
Diese sind technisch dictionary views aber für die Zwecke von dieses problem Sie das gleiche handeln.
Nein ist es nicht!
&
ist ein logischer operator, der auf Mengen bedeutetintersection of
. Aktualisierung der Antwort zu enthalten, info.&
ist bitweise UND, nicht logisch UND. Aber ist es nicht eigentlich egal, weil es überlastet setzt.Ich natürlich stehe korrigiert.
PEP 404 🙂
InformationsquelleAutor Martijn Pieters
Diese kann geschrieben werden als Einzeiler mit
all
:Es ist auch mehr deklarative Ansatz, die möglicherweise vermitteln die Absicht besser.
InformationsquelleAutor Cat Plus Plus
Wenn Sie möchten, Durchlaufen Sie alle passenden Schlüssel/Wert-Paare, die Sie verwenden können,
(Python 2.7)
InformationsquelleAutor Sven Marnach