tiempo sacar reloj medir libreria ejecucion como python dynamic printing inline

sacar - medir tiempo de ejecucion en python



Cómo imprimir con en línea if declaración? (3)

Este diccionario corresponde con nodos numerados:

{0: True, 1: True, 2: True, 3: False, 4: False, 5: False, 6: True, 7: True, 8: False, 9: False}

Usando dos instrucciones de impresión, deseo imprimir nodos marcados y no marcados de la siguiente manera:

  • Nodos marcados: 0 1 2 6 7

  • Nodos no marcados: 3 4 5 8 9

Quiero algo cercano a:

print("Marked nodes: %d" key in markedDict if markedDict[key] = True) print("Unmarked nodes: %d" key in markedDict if markedDict[key] = False)


Aquí hay otra solución que funciona con versiones de python que no son compatibles con la sintaxis de desempaquetado que se usa en la respuesta principal. Deje d ser su diccionario:

>>> print(''marked nodes: '' + '' ''.join(str(x) for x,y in d.items() if y)) marked nodes: 0 1 2 6 7 >>> print(''unmarked nodes: '' + '' ''.join(str(x) for x,y in d.items() if not y)) unmarked nodes: 3 4 5 8 9


Podemos evitar iteraciones duplicadas sobre el diccionario.

marked = [] unmarked = [] mappend = marked.append unmappend = unmarked.append [mappend(str(x))if y else unmappend(str(x)) for x, y in d.iteritems()] print "Marked - %s/r/nUnmarked - %s" %('' ''. join(marked), '' ''. join(unmarked))


Puedes usar listas de comprensión:

nodes = {0: True, 1: True, 2: True, 3: False, 4: False, 5: False, 6: True, 7: True, 8: False, 9: False} print("Marked nodes: ", *[i for i, value in nodes.items() if value]) print("Unmarked nodes: ", *[i for i, value in nodes.items() if not value])

Salida:

Marked nodes: 0 1 2 6 7 Unmarked nodes: 3 4 5 8 9