在python for循环中使用多于1个iterable

时间:2016-10-20 07:11:17

标签: python python-2.7

我想调用一个python for循环,有两个这样的迭代:

TEMPLATE_FILE = { 'a': 'power', 'b': 'voltage', 'c': 'current' }
for (script in TEMPLATE_FILE.values()) and (files in TEMPLATE_FILE.keys()):
    print 'script: ',script
    print 'files: ',files 
    print "\n"

但这是语法错误,我该怎么做?

4 个答案:

答案 0 :(得分:9)

 for files,script in TEMPLATE_FILE.items():
    print(files,scripts)

是您正在寻找的建筑。

(在python 2中有一个iteritems,它在python 3中被删除,因此对于小词典items是可以和便携的)

当然可以这样做:

for files in TEMPLATE_FILE:
    scripts = TEMPLATE_FILE[files]

但是这并不像你在每次迭代时散列键那样有效,而你可以在没有它的情况下获得值。随机访问案例的保留哈希。

请注意,您可以像这样迭代排序键(常见问题):

 for files,script in sorted(TEMPLATE_FILE.items()):
    print(files,scripts)

答案 1 :(得分:3)

要访问字典中的键值,您可以这样做。

对于Python 2.x:

for files,script in TEMPLATE_FILE.iteritems():

对于Python 3.x:

for files,script in TEMPLATE_FILE.items():

或者你也可以这样做,独立于python版本:

for files in TEMPLATE_FILE:
    script = TEMPLATE_FILE[files]
    #print(files, script)

最后一点的缺点是每次都按@ Jean-FrançoisFabre的建议重新散列键。

答案 2 :(得分:2)

您只想迭代字典并在每次迭代时获取密钥及其值。

for file_ in TEMPLATE_FILE:
    script = TEMPLATE_FILE[file_]

for file_, script in TEMPLATE_FILE.items():
    ...

答案 3 :(得分:0)

您不需要像这样编码。以下代码是您想要的

TEMPLATE_FILE = { 'a': 'power', 'b': 'voltage', 'c': 'current' }
for script in TEMPLATE_FILE:
    print 'script: ',script
    print 'files: ',TEMPLATE_FILE[script ]
    print "\n"