我有一个包含2个词典的列表:
>>> x
[{'sby_0': 'sb0'}, {'sby_1': 'sb1'}]
我想使用百分号来获得第二个dictonary的项目:
i = 1
x[1]["sby_%s" %i]
但它不起作用。我该怎么办?
答案 0 :(得分:2)
您的代码没有问题:
In [6]: x = [{'sby_0': 'sb0'}, {'sby_1': 'sb1'}]
In [7]: i = 1
In [8]: x[1]['sby_%s' % i]
Out[8]: 'sb1'
修改您在评论中发布的错误消息为x[1]["sby_%i", i]
。那里的问题是逗号;它应该用百分号替换。
答案 1 :(得分:1)
您的代码完美无缺:
>>> x = [{'sby_0': 'sb0'}, {'sby_1': 'sb1'}]
>>> i = 1
>>> x[1]["sby_%s" %i]
'sb1'
但是,我使用%d
代替%s
,因为i
是一个数字。
您未发布的代码中的错误是您使用的是"sby_%s", i
而不是"sby_%s" % i
。 %
执行字符串格式化(你想要的),而,
创建一个元组(在这种情况下你不想要的)
答案 2 :(得分: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'
按预期工作。也许扩展您的问题并发布有关您的使用情况的更多信息。