0

说我有一本字典d = {'q1': 1, 'q2': 2}

如何在for循环中检查此字典中是否存在一组键?就像是:

for i in range(0, 1):
    if 'q'+i in d:
       print 'Key exists!'

如何更换'q'+i零件以使我的代码有效?基本上,我需要知道如何将字符串与整数连接起来,以将其用作有效的 Python 表达式进行搜索。

4

4 回答 4

7

您需要制作i一个字符串:

if 'q'+str(i) in d:

在 Python 中,+只能将两个相同类型的东西放在一起(例如两个字符串、两个整数等)。你不能把'q',它是一个字符串,和i,它是一个从 生成的整数放在一起range(0, 1)

实际上,这可以像这样更有效地完成:

if 'q%i' % i in d:

与第一个解决方案不同,这个解决方案仅创建一个字符串(另一个创建两个,然后将它们与 放在一起+)。

于 2013-10-11T13:39:22.440 回答
7

怎么样:

if 'q{0}'.format(i) in d:
于 2013-10-11T13:43:20.247 回答
2

你也可以这样做:

if 'q%d'%i in d:
于 2013-10-11T13:40:46.433 回答
2

对我来说更优雅:

for key in ['q{}'.format(i) for i in xrange(0, 1)]:
    if key in my_dict:
        print "key exists!"
于 2013-10-11T13:51:39.917 回答