Ich habe eine Frage zum folgenden Code
smaller={}
for( dest in a[neigbour].keys())
if(dest in smaller.keys() == False):
print 'false'
}
Ich kann diesen Code nicht drucken lassen false
.. mache ich etwas falsch? Ich frage mich, ob ich das Richtige tue, um die Anweisung dest in smaller.keys() == False
zu überprüfen.
3 Antworten
Das Gegenteil von dest in smaller.keys()
ist dest not in smaller.keys()
. Keine Notwendigkeit, mit False
oder True
zu vergleichen:
if (dest not in smaller.keys()):
Dokumentation für in
und not in
: http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
Ihre Python-Syntax ist ziemlich verwirrt. Zum einen benötigen Sie nach Ihrer for
-Anweisung ein :
, und es ist im Allgemeinen nicht idiomatisch, in Python geschweifte Klammern um eine for
-Schleife zu verwenden. Anstatt mit False
mit ==
zu vergleichen, verwenden wir im Allgemeinen not
:
smaller = {}
for dest in a[neighbour].keys():
if dest not in smaller.keys():
print('false')
Neben den anderen Antworten, die Sie erhalten haben, könnte der Code wie folgt geschrieben werden:
for key in a[neighbour].viewkeys() - smaller.viewkeys():
print key, 'not found'
Dies nutzt das setähnliche Verhalten von .viewkeys
, um auf einfache Weise einen Satz aller Schlüssel in a[neighbour]
und nicht in b
zu erstellen, und führt dann eine Schleife darüber durch.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.