有人可以解决以下语法错误吗?

时间:2015-09-16 18:36:45

标签: python

注意:我不是Python的常规用户。

以下已被确定为语法错误,虽然它可能看起来有些基本或微不足道,但我无法为我的生活解决错误。

{'key': value for (key, value) in vars()[x]}

我也将它输入IDLE shell,以下是收到的响应。

>>> x = input('')
1
>>> vars()[x]=[1,2,3]
>>> myDict = {'key': value for (key, value) in vars()[x]}
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    myDict = {'key': value for (key, value) in vars()[x]}
  File "<pyshell#2>", line 1, in <dictcomp>
    myDict = {'key': value for (key, value) in vars()[x]}
TypeError: 'int' object is not iterable

感谢。

1 个答案:

答案 0 :(得分:0)

您正在尝试迭代单个int元素而不是列表或字典。以下内容应该会给你一个更好的主意。

vars = {'key':'value'}
for key, value in vars.iteritems():
    print key, value

这可能更适合你(即使它真的反直觉):

vars = [1, 2, 3]
d = {'key':'value'}
for value in vars:
    d['key'] = value
print d

输出:{'key': 3}

来自docs

  

异常TypeError   将操作或函数应用于不适当类型的对象时引发。关联值是一个字符串,提供有关类型不匹配的详细信息。