【问题标题】:Python - Create objects with indexed namesPython - 创建具有索引名称的对象
【发布时间】:2018-09-05 07:06:41
【问题描述】:
 dict = {'Key1': 'Value1'
         'Key2': 'Valeu2'
         }   

 list1 = [dict1, dict2, dictx, ....]

所以基本上我定义了 dict,然后我第一次运行循环,现在我想要发生的是 dict 将根据代码更新,然后通过名称 dict1 和第二次迭代附加到 list1它将是 dict2 等等。当然,每个词典都有自己的条目。

【问题讨论】:

  • 我不明白。 dict1dict2dictx 来自哪里?为什么最后还有一堆带有数字的变量?你为什么不把你的字典存储在一个列表中?
  • 不要将字典命名为内置函数
  • @Aran 这不是我的代码,这就是我想要发生的事情。我希望更新的字典(在每次迭代之后)以新名称存储在列表中,因此我将拥有通过迭代创建的所有字典的列表
  • 但是为什么它必须存储在列表中并且有一个名字呢?为什么需要这个名字?
  • 这和名字一点关系都没有。您只需要创建一个新字典而不是更新旧字典。

标签: python


【解决方案1】:

假设您的字典确实存在于某处 - 您可以将它们的名称存储为字符串列表,然后在需要时使用 eval()“提取”它们

mydict0 = {'Key1': 'Value1', 'Key2': 'Valeu2'}
mydict1 = {'Key1': 'Value1', 'Key2': 'Valeu2'}
mydict2 = {'Key1': 'Value1', 'Key2': 'Valeu2'}
mydict3 = {'Key1': 'Value1', 'Key2': 'Valeu2'}

mylist = ["mydict0", "mydict1", "mydict2", "mydict3"]

> eval(mylist[0])
> {'Key1': 'Value1', 'Key2': 'Valeu2'}

或者,如果您动态创建字典,您可以创建字典字典:

dict_of_dicts = {}

for i in range(20):
    key = "mydict{}".format(i)
    value = {'Key1': 'Value1', 'Key2': 'Valeu2'}   
    dict_of_dicts[key] = value

> dict_of_dicts

{'mydict0': {'Key1': 'Value1', 'Key2': 'Valeu2'},
 'mydict1': {'Key1': 'Value1', 'Key2': 'Valeu2'},
 'mydict2': {'Key1': 'Value1', 'Key2': 'Valeu2'},
 ...

> dict_of_dicts["mydict0"]
> {'Key1': 'Value1', 'Key2': 'Valeu2'}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 2013-04-05
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多