传递关键:价值对功能

时间:2017-06-08 13:46:53

标签: python python-2.7

我想遍历字典中的键:值对,并将它们作为参数传递给函数。在函数中,我试图返回我从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调用的返回值赋值来实例化给定的键。

任何帮助都会很棒。

2 个答案:

答案 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仍然只是您字典中的一个键。