【发布时间】:2017-03-27 07:27:16
【问题描述】:
我正在使用 locals 函数来创建一个可迭代对象,其中填充了我调用此函数时提供的 a、b、c 的值。当我遍历 locals 返回的字典时,我遍历变量名,而不是值。但是 l.values 是不可迭代的,我猜它指向一个函数,而不是我期望的列表。
Traceback (most recent call last):
file.py on line ?, in getUserOutputs
userOutput = _runaedlz(testInputs[i])
file.py on line ?, in _runaedlz
return extraNumber(*_fArgs_dfasruobxant)
file.py on line 5, in extraNumber
for i in l:
TypeError: 'builtin_function_or_method' object is not iterable
有没有更好的方法来列出这些值?我可以用更蛮力的方式来做,但我正在尝试学习所有这些内置函数以及它们有什么用处。
或者有没有办法遍历我缺少的字典值?
两种不同的方式来完成同一件事,是吗?
def extraNumber(a, b, c):
l=locals()
l=l.values
print(l)
for i in l:
if(l.count(i)==1):
return i
【问题讨论】:
-
尝试使用 l.values() 代替。好像 values() 是一个函数,所以调用它。
-
哇,有时候真是太神奇了。 l.values 和 l.values() 之间的区别起到了作用。
-
酷!有时,如果您不确定挂在对象上的属性是否可调用,则有一个 callable(l.values) 函数。
标签: python list dictionary local iterable