【发布时间】:2013-08-05 17:19:27
【问题描述】:
我的 python 3 代码没有按预期工作:
def addFunc(x,y):
print (x+y)
def subABC(x,y,z):
print (x-y-z)
def doublePower(base,exp):
print(2*base**exp)
def RootFunc(inputDict):
for k,v in inputDict.items():
if v[0]==1:
d[k] = addFunc(*v[1:])
elif v[0] ==2:
d[k] = subABC(*v[1:])
elif v[0]==3:
d[k] = doublePower(*v[1:])
d={"s1_7":[1,5,2],"d1_6":[2,12,3,3],"e1_3200":[3,40,2],"s2_13":[1,6,7],"d2_30":[2,42,2,10]}
RootFunc(d)
#test to make sure key var assignment works
print(d)
我明白了:
{'d2_30': None, 's2_13': None, 's1_7': None, 'e1_3200': None, 'd1_6': None}
我预计:
{'d2_30': 30, 's2_13': 13, 's1_7': 7, 'e1_3200': 3200, 'd1_6': 6}
怎么了?
半相关:我知道字典是无序的,但是 python 选择这个顺序有什么原因吗?它是否通过随机发生器运行密钥?
【问题讨论】:
-
您的函数需要
return值,而不仅仅是打印它们。
标签: python for-loop dictionary python-3.x key-value