2017-01-27 1 views
2

Ich versuche, diesen Code zu verstehen, wieDer Versuch, Kondensmilch Python zu verstehen

proposed = dict((k, v) for k, v in args.iteritems() if v is not None) 
im Langformat legt

Das Beste, was ich mit der folgenden ist oben kommen kann, aber es funktioniert nicht:

for k,v in args.iteritems(): 
    print "value of v is: %s" % v 
    if v is not None: 
    proposed = dict(k,v) 

Allerdings wirft es die folgenden Fehler:

Typeerror: dict höchstens 1 Argument erwartet, bekam 2

+0

vorgeschlagen = {k: v} –

+4

mehr wie 'wenn v nicht None: vorgeschlagen [k] = v'. Und setze 'vorgeschlagen = {}' vor der Schleife. – dhke

+0

aber Sie wollen wahrscheinlich vorgeschlagen [k] = v und definieren außerhalb der Schleife vorgeschlagen –

Antwort

2

Versuchen:

proposed=dict() 
for k,v in args.iteritems(): 
    print "value of v is: %s" % v 
    if v is not None: 
    proposed[k] = v #This is the part you got wrong 
+0

Das war es ... Es hat funktioniert. – mikey

+0

Ich habe noch eins: delta = dict (set (vorgeschlagen.iteritems()). Difference (existing.iteritems())) – mikey

+0

@mikey: Sie sollten versuchen, das für sich selbst zu arbeiten oder eine neue Frage zu stellen. Die Seite hat ein einzelnes Frage-Mehrfach-Antwort-Format, das es einfach macht, Dinge zu finden und verhindert (Gott sei Dank!) Lange Diskussionen. – Richard