Python,如何多dict声明变量函数

时间:2017-03-01 14:12:43

标签: python python-3.x

我需要这样做。

def multiDecare(num = eval(input('Enter number of variables : '))):
    I = 0
    get_var = {}
    while I < num:
       e = 'var'+str(I)
       get_var.update(dict.fromkey(e))
    return get_var
打印时的结果如下:

 {'var1':'','var2':'''var3':'''var4':'''var5':''}

1 个答案:

答案 0 :(得分:2)

你有一个无限循环,因为你没有递增I

为了避免所有while内容(每个人都被while抓到一次),您可以使用for循环,但更好的是,您可以在1行中创建字典在from_keys

中使用gen-comprehension
def multiDeclare(num):
  return dict.fromkeys(("var{}".format(i) for i in range(1,num+1)),"")

或dict comprehension:

  return  {"var{}".format(i+1):"" for i in range(num)}

num == 5,函数返回:

{'var5': '', 'var4': '', 'var2': '', 'var1': '', 'var3': ''}

除了:

  • 不要使用eval(input("")),这是不安全的,在这种情况下int(input(""))会做同样的事情
  • 不要将函数调用作为默认参数传递,只传递值(不可变为最佳)。