所以我有一个脚本允许我在命令行中键入内容,并让它显示相应的列表。例如,如果我运行它,并打印
以下是基本要点:
list_of_strings = ['mexico', 'america', 'canada']
list_of_lists = [ [0,0,0,3], [4,9,3,6], [5,6,7] ]
for name in range(len(list_of_strings)):
exec(list_of_strings[name] + ' = list_of_lists[name]')
运行此功能,然后输入" america' (没有引号),返回[4,9,3,6]。
我的问题是当我想将这个位转换为函数时,比如
def my_zip(list_of_strings, list_of_lists):
for name in range(len(list_of_strings)):
return exec(list_of_strings[name] + ' = list_of_lists[name]')
my_zip(list_of_strings, list_of_lists)
它不再有效。 '美国' (无引号)不被视为变量。
我觉得我应该使用字典,但任何指针都会非常感激!
答案 0 :(得分:0)
3个主要问题:
exec
不会返回任何内容。
return
循环中有for
。它只会运行一次迭代。由于这一点以及exec
什么都不返回的事实,它会在一次迭代后立即返回None
。
您正在使用exec
开头。您应该编辑您的问题以包括您真正想要做的事情。可能有更好,更安全的方式。