使用另一个列表的元素名称创建空列表

Fır*_*lur 5 python list

假设我们有一个列表my_list=["a","b","c"].我想要做的是创建空列表

a=[]
b=[]
c=[]
Run Code Online (Sandbox Code Playgroud)

这样我就可以根据他们的名字将一些元素附加到它们中.

Nov*_*vel 15

以编程方式创建变量是一个非常糟糕的主意.使用这些名称作为键来创建字典:

my_lists = {key:[] for key in my_list}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样附加到他们身上:

my_lists['a'].append(some_data)
Run Code Online (Sandbox Code Playgroud)

如果需要,这也为您提供了轻松遍历它们的优势.

  • 出于多种原因,这是一个坏主意.1)如果你是从用户输入创建变量,用户可以轻松覆盖你的一个变量或尝试使用关键字2)它有效地禁用跟踪变量的IDE中的工具,使调试成为一场噩梦3)逻辑分组的东西应该留在组; 这使得循环更容易,并且大多数事情需要在某个时刻循环4)读取这些变量将涉及另一个混乱的`exec`调用.5)如果你不知道创建了多少变量,你需要另一种hacky方法来检查本地命名空间.6)其他原因我敢肯定...... (3认同)

Chr*_*e55 2

在这里,它使用该函数exec来执行命令,就像您键入的一样,但您将其用作i动态变量名称

for i in my_list:
  exec(i+'=[]')
Run Code Online (Sandbox Code Playgroud)

请记住,这样做不太安全