-2

我有一个包含 2 个字典的列表:

>>> x
[{'sby_0': 'sb0'}, {'sby_1': 'sb1'}]

我想使用百分号获取第二个字典的项目:

i = 1
x[1]["sby_%s" %i]

但它不起作用。我应该怎么办?

4

3 回答 3

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]。问题在于逗号;它应该用百分号替换。

于 2012-05-15T09:40:16.723 回答
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. %在创建元组时执行字符串格式化(你想要什么),(在这种情况下你不想要什么)

于 2012-05-15T09:40:18.523 回答
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'

它按预期工作。也许扩展您的问题并发布有关您的使用情况的更多信息。

于 2012-05-15T09:41:17.240 回答