检查Python字典中是否存在变量键

时间:2013-10-11 13:38:26

标签: python dictionary

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

如何在for循环中检查此词典中是否存在一组键?类似的东西:

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

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

4 个答案:

答案 0 :(得分:7)

您需要将i设为字符串:

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

在Python中,+只能将两个相同类型的东西放在一起(例如两个字符串,两个整数等)。您不能将'q'({1}}和i放在一起,range(0, 1)是从if 'q%i' % i in d: 生成的整数。

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

+

与第一个解决方案不同,这个解决方案只创建一个字符串(另一个产生两个字符串,然后将它们与{{1}}放在一起)。

答案 1 :(得分:7)

怎么样:

if 'q{0}'.format(i) in d:

答案 2 :(得分:2)

您也可以这样做:

if 'q%d'%i in d:

答案 3 :(得分:2)

对我来说更优雅:

for key in ['q{}'.format(i) for i in xrange(0, 1)]:
    if key in my_dict:
        print "key exists!"