stu_dict = [{raw_input():int(raw_input())} for i in xrange(1)]
print stu_dict
Pour le code ci-dessus, l'entrée devrait être comme suit: 4
et r
et imprime comme [{'r': 4}]
, cela signifie qu'il prend 4
en tant que valeur et r
comme clé ici!Pourquoi raw_input prend-il de la valeur en premier?
Mais le code ci-dessous, il est entrée inverse, le premier sera affecté à la clé, et la seconde à valoriser
a = [[raw_input(), float(raw_input())] for i in xrange(int(raw_input()))]
print a
Pourquoi est-il?
valeurs sont évaluées avant que les clés dans un 'dict',' list's sont évalués de gauche à droite –
@Chris_Rands Nope. Pas en Python> = 3.5. Par la spécification, les clés * doivent être évaluées avant les valeurs *, mais il y avait un bug en suspens: https://bugs.python.org/issue11205 –
@ juanpa.arrivillaga ils utilisent 2.7 –