迭代一个函数的每个键及其值。

12 浏览
0 Comments

迭代一个函数的每个键及其值。

这个问题已经在这里有答案了使用\'for\'循环迭代字典

我有一个函数,我试图循环遍历它,以便在它们后面添加\", \"这些变量。

def create_merge(address, city, state_province, country, postal_code, contact, state):
    for key in locals().keys():
        for value in locals().values():
            print(key, value)

这...有点起作用,但并不完全起作用。虽然它为我提供了那个def中所有值的正确输出,但它仅显示键的state。我知道为什么,因为它先在第一个键中循环遍历所有的值,然后才移动到第二个键。

我想要的是一个循环,比如说:

address 123 My Address
city 
state_province Illinois
country USA
postal_code 12345
contact McGruff
state Illinois

这个明显只是首先列出键,然后是值。我该如何一次处理一个键和一个值呢?

for key in locals().keys():
    print (key)
for value in locals().values():
    print (value)

... print(key,key.values())不起作用。

也不是这样的:

for key in locals().keys():
    print (key, locals().values())

我觉得我快要成功了,但就是无法做到。谢谢任何建议/建议。

最后注意:我需要以一种可以看到值是否不为空并在继续函数之前如果不为空将值用\", \"修改的方式来完成此操作。

admin 更改状态以发布 2023年5月25日
0
0 Comments

虽然 @VictorC 的 for key, value in locals().items() 可行,但我发现以下做法也可以:

for key, value in zip(locals().keys(), locals().values()):
    print (key, value)

(这里只是为了记录而注释。我还在学习 Python,所以如果有人觉得无聊,可以评论一下 zip() 和循环遍历 items() 的区别)。

0
0 Comments

你可以遍历键并使用 .get 方法打印出键和键的值。

for key in locals().keys():
    print(key, locals().get(key))

或者,你可以直接使用索引来获取值。

for key in locals().keys():
    print(key, locals()[key])

最后,你也可以使用字典的 .items() 方法(Python 2.x 中使用 .iteritems())。

for key, value in locals().items():
    print(key, value)

在使用这些变量之前,请确保实例化 keyvalue。否则,在迭代时更改 locals() 中的项目并且会出错。

0