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

2024-10-03 23:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要这样做。你知道吗

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':''}

Tags: ofnumberinputgetvardefevalupdate
1条回答
网友
1楼 · 发布于 2024-10-03 23:18:43

你有一个无限循环,因为你没有增加I。你知道吗

为了避免所有那些while的东西(每个人都会在while中被抓住一次),你可以使用for循环,但更好的是,你可以使用from_keys中的gen comprehension在一行中创建字典

def multiDeclare(num):
  return dict.fromkeys(("var{}".format(i) for i in range(1,num+1)),"")

或听写理解:

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

使用num == 5,函数返回:

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

旁白:

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

相关问题 更多 >