我想做以下事情:
采用任意数量的字典或数字参数
作为字典的参数,检查它们是否都具有相同的键(否则错误)
做类似的事情
for key in dict: out[key] = product(dict1[key],number2,dict2[key],etc.)
如果一个参数是一个数字,它假装“好像”它是一个字典,该数字作为每个键的值。(当然,这也可以sum
代替product
)。
理想情况下,这将是一个库,但我可以使用手写函数。到目前为止,我还没有写出任何适用于两个以上论点的东西。
例如,假设我的输入是:
a = {
'Burkina' : 100,
'Chad': 50
}
b = 2
对于两个论点,我认为这有效:
def p(a,b):
out = {}
try:
for key in a:
try:
out[key] = a[key]*b[key]
except TypeError:
out[key] = a[key]*b
except TypeError:
for key in b:
try:
out[key] = a[key]*b[key]
except TypeError:
out[key] = a*b[key]
for key in out:
print(key,out[key])
但是这种方法需要一个越来越长的函数来处理更多的参数。所以这不可能。然后我尝试这样做*args:
def p(*args):
out = {}
for arg in args:
try:
for key in arg:
try:
out[key] = a[key]*b[key]
except TypeError:
out[key] = a[key]*b
except TypeError:
for key in args:
try:
out[key] = a[key]*b[key]
except TypeError:
out[key] = a*b[key]
for key in out:
print(key,out[key])
但这得到了 TypeErrors,我的头开始旋转。
编辑添加:如果所有输入都是数字,我想返回一个数字。
莫回无
汪汪一只猫
相关分类