代码之家  ›  专栏  ›  技术社区  ›  FahdS

在程序执行期间,在向全局变量列表添加新项之后,更新从函数中的全局变量列表派生的全局变量字典

  •  0
  • FahdS  · 技术社区  · 4 年前

    我有一个全局列表和一个全局映射字典

    some_list_of_objects = []
    mapping = {i.attr1: i.attr2 for i in some_list_of_objects}
    

    当我的程序运行时,新对象会添加到some_list_of_objects中。在将新对象添加到列表后,我需要更新我的映射字典,因为在程序的后期,我需要访问这个更新的映射字典。

    我知道如果我只是简单地复制并运行映射脚本,这会很容易。然而,我想要的是一个在调用时更新全局映射字典的函数。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    4 年前

    解决方案是:

    def update_mapping():
       global mapping
       mapping = {i.attr1: i.attr2 for i in some_list_of_objects}
    

    现在,每当调用update_mapping()时,映射dict都会更新。

    推荐文章