Python将字符串更改为变量名

所以我有一个字符串列表 MyList=['ID_0','ID_1','ID_2',....] 从中我使用了一个 exec 函数来创建一个以元素作为名称的空列表,即每个我都有空列表ID_0=[] 等等。我现在想创建一个 for 循环,在其中按名称获取每个列表并将元素附加到它,例如

for i in range(len(MyList)):
     *magic*
     ID_0.append(i)

在每个循环中,它用于下一个列表,即 ID_1,ID_2.... 等等

我想获取 MyList 中的每个字符串并将其更改为变量名称。就像取“ID_0”并将其更改为说 ID_0(这是之前定义的空列表),然后创建一个列表 BigList=[ID_0,ID_1,ID_2,.....] 这样我就可以从BgList 在我的 for 循环中,但我不知道如何

回答

比使用更安全的方法exec可能是构造一个字典,这样您就可以安全地通过每个列表的 ID 来引用它:

MyList=['ID_0','ID_1','ID_2']

lists = {}
for i, list_id in enumerate(MyList):
    lists[list_id] = [i]

请注意, usingenumeraterange(len(MyList)). 它返回 (index, item) 的元组。

或者,您也可以使用defaultdict,它会在第一次引用时在字典中构造一个新项目:

from collections import defaultdict

lists = defaultdict(list)
for i, list_id in enumerate(MyList):
    lists[list_id].append(i)


以上是Python将字符串更改为变量名的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>