2012-05-15 6 views

Répondre

1

Votre code fonctionne parfaitement bien:

>>> x = [{'sby_0': 'sb0'}, {'sby_1': 'sb1'}] 
>>> i = 1 
>>> x[1]["sby_%s" %i] 
'sb1' 

Cependant, j'utiliser %d au lieu de %s depuis i est un nombre.

L'erreur dans le code que vous n'avez pas affiché est que vous avez utilisé "sby_%s", i au lieu de "sby_%s" % i. % effectue la mise en forme de chaîne (ce que vous voulez) tout , crée un tuple (ce que vous ne voulez pas dans ce cas)

+0

Je reçois ceci: '>>> x [1] [ "sby_% s", i] retraçage (appel le plus récent en dernier): Fichier "", ligne 1, en x [1] [ » KeyError: ('sby_% i', 1) ' – alwbtc

+1

Vous avez écrit', 'au lieu de'% '- et votre dict n'a pas de clé' ('sby_% i', 1) '. – ThiefMaster

2

Il n'y a rien de mal avec votre code:

In [6]: x = [{'sby_0': 'sb0'}, {'sby_1': 'sb1'}] 

In [7]: i = 1 

In [8]: x[1]['sby_%s' % i] 
Out[8]: 'sb1' 

modifier Le message d'erreur que vous avez posté dans les commentaires dit x[1]["sby_%i", i]. Le problème est la virgule; il devrait être remplacé par le signe du pourcentage.

+0

@alwbtc: Voir l'édition. – NPE

0
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> x = [{'sby_0': 'sb0'}, {'sby_1': 'sb1'}] 
>>> i = 1 
>>> x[1] 
{'sby_1': 'sb1'} 
>>> x[1]['sby_%s' % i] 
'sb1' 

Il fonctionne comme prévu. Développez peut-être votre question et publiez plus d'informations sur votre utilisation.

Questions connexes