【问题标题】:Python: How do I assign items to variables within a loop, where the variable and item names change based on a predetermined list? [duplicate]Python:如何将项目分配给循环中的变量,其中变量和项目名称根据预定列表而变化? [复制]
【发布时间】:2017-04-03 23:45:44
【问题描述】:

我希望使用循环将项目分配给变量,其中变量的名称已经从列表中预先确定。我已经建立了一个列表,但我在循环中遇到了问题。我的代码是这样的:

dict_Name = { 'a', 'b', 'c', ... , 'k', 'l'}

for input_x in list_Name:

    dict_Name['self.var_'+input_x] = round(float(eval('self.ui.inp_'+input_x).text()), 2)

    print ('self.var'+input_x)

字典从“a”到“l”的位置。在这里,四舍五入的浮点数来自用户输入(使用 PyQt 创建的 GUI),例如,输入值名称为“inp_a”。我正在寻找将“inp_a”值分配给“var_a”,但我遇到了麻烦。

当前的错误是“'set'对象不支持项目分配”。我假设这意味着我不能使用字典工具从用户输入中分配变量,但我不确定。

非常感谢任何帮助。

【问题讨论】:

  • 您在第一行创建了set 而不是dict。这就是您在第 3 行收到 'set' object does not support item assignment' 错误的原因。
  • 好的,我现在明白了。我一直在寻找一种快速生成所有变量的方法,但我现在明白了为什么动态创建它们不是最好的主意。在 MS excel 和 MS word 之间,我能够将其设置为非常快速地设置变量。谢谢。

标签: python python-3.x dictionary for-loop variable-assignment


【解决方案1】:

在您的第一行中,您创建了一个集合:

dict_Name = { 'a', 'b', 'c', ... , 'k', 'l'} # not a dict

dict 是项目到其他项目的映射,您在哪里看到任何映射? 例如这是一个字典:

real_dict = {'a' : 'val_a', 'b' : 'val_b'}

另一方面,set 是唯一对象的集合,这就是您在第一行创建的。

【讨论】:

    猜你喜欢
    • 2020-10-08
    • 1970-01-01
    • 2015-05-31
    • 2016-02-10
    • 1970-01-01
    • 2010-09-23
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多