我想遍历字典中的键:值对,并将它们作为参数传递给函数。在函数中,我试图返回我从API调用获得的值。我的最终目标是将密钥设置为等于我从API调用获得的值。
$num_pairs = count($old) / 2;
$new = [];
for($i = 0; $i < $num_pairs; $i++) {
$new[$old[$i*2]] = $old[$i*2+1];
}
当我运行此操作时,我收到一条错误消息“&#39; a&#39;没有定义。我很难理解为什么
def SomeFunction(key,val):
return APICall(val)
myDict = {'a' : 'A',
'b' : 'B',
'c' : 'C'
}
for key,val in myDict.items():
key = SomeFunction(key,val)
print a
#>>>'return value from API'
不会通过API调用的返回值赋值来实例化给定的键。
任何帮助都会很棒。
答案 0 :(得分:0)
我认为您不需要将密钥发送到SomeFunction()
,因为API调用仅使用val
另外,要为dict中的键指定/更改值,您必须使用dict[key] == value
。
所以你的代码应该改为..
def SomeFunction(key,val):
return APICall(val)
myDict = {'a' : 'A',
'b' : 'B',
'c' : 'C'
}
for key,val in myDict.items():
dict[key] = SomeFunction(val)
现在要打印API调用的返回值(就像你尝试的那样),你需要再次遍历dict并打印键和值。
答案 1 :(得分:0)
如果你想在一个dctionary中更改一个键的值,你需要重新分配它,正如@Haris已经指出的那样。
for key,val in myDict.items():
myDict[key] = SomeFunction(key,val)
print myDict['a']
请注意,您不能只使用print a
,因为您没有神奇地获取变量a
- 字符串a
仍然只是您字典中的一个键。