2013-04-05 3 views
1

c = d[s[0]]c est une nouvelle variable, d est un dictionnaire et s est une liste. Ce que j'essaye de faire est d'assigner la valeur d'une clef qui est identique au premier élément de ma liste à c. Je sais que la clé est dans le dictionnaire, et que le premier élément de la liste est le même que cette clé. Comment affecter la valeur de cette clé à une variable? Le code que j'ai écrit me donne une erreur hors indice.Attribuer une valeur de dictionnaire à une variable où la clé == liste [élément]

Cependant, le code:

a = s[0] 
c = d[a] 

œuvres. Pourquoi la première tentative ne fonctionne-t-elle pas? Ceci est pour Python 2.7 sur Windows

+0

Cela ne me dérange pas d'être minus, mais s'il vous plaît soyez assez aimable pour indiquer pourquoi. – user2243208

+0

Je ne vous ai pas déprécié, mais c'est probablement dû au fait qu'il est complètement impossible de vous donner une réponse précise avec ce que vous nous avez donné. Vous n'avez pas inclus le code pertinent. –

+0

Je suis désolé, je n'ai plus le code que j'ai écrit. Essentiellement ce que j'avais était une liste, et un dictionnaire d'histogramme de cette liste. J'ai trié la liste puis j'ai pris le premier élément et j'ai essayé de tirer la valeur de la clé correspondante. Mon code aurait dû fonctionner tel que posté par @Srikar Appal, mais pour une raison quelconque a continué à se sortir de l'erreur d'index. Malheureusement, je ne pouvais pas dire si c'était hors de l'index sur la liste ou sur le dictionnaire. J'ai supposé que c'était un problème avec la façon dont j'ai écrit la déclaration, puisque la méthode alternative a fonctionné sans problèmes jamais. – user2243208

Répondre

1

Je ne sais pas pourquoi cela ne fonctionne pas pour vous. Peut-être que votre list n'est pas peuplé après tout. Cela devrait fonctionner -

>>> d={'world':'hunger'} 
>>> s=['world'] 
>>> d[s[0]] 
'hunger' 
>>> c = d[s[0]] 
>>> c 
'hunger' 
>>> 

également des dictionnaires Python ont une fonctionnalité très pratique, appelé has_key. Il vérifie si une clé est présente dans ce dict ou pas. Je l'utilise pour éviter KeyError Exceptions ... Vous pouvez envisager d'utiliser ceci pour éviter les plantages indésirables.

+0

merci, cela aide beaucoup – user2243208

Questions connexes