Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的动态变量_Python_List_Variables - Fatal编程技术网

Python中的动态变量

Python中的动态变量,python,list,variables,Python,List,Variables,例如,如何在python中创建具有动态名称的列表 for i in range(len(myself)): list(i) = [] 我应该用什么来代替listi? 这意味着我想要一些如下的名字: list1 list2 list3 ... 动态变量名很少是个好主意;使用字典几乎总是更好的: myLists = {"list{}".format(i):[] for i in range(len_i)} 不要将列表用作变量名-它会隐藏现有关键字。我建议您只使用列表或字典,而不要使用动态

例如,如何在python中创建具有动态名称的列表

for i in range(len(myself)):
   list(i) = []
我应该用什么来代替listi? 这意味着我想要一些如下的名字:

list1
list2
list3
...

动态变量名很少是个好主意;使用字典几乎总是更好的:

myLists = {"list{}".format(i):[] for i in range(len_i)}
不要将列表用作变量名-它会隐藏现有关键字。

我建议您只使用列表或字典,而不要使用动态变量名。下面的所有版本都会导致列表[0],列表[1]等为[],这似乎与您想要的内容非常接近,并且从长远来看更具可读性/可维护性。注意:我使用list而不是list作为变量名,因为后者会覆盖内置的list函数,这可能是您不想要的

1个版本,列表为列表列表编号仅为列表的顺序:

lists = [[] for i in range(len(myself))]
2相同,但使用for循环而不是列表:

lists = []
for i in range(len(myself)):
   lists.append([])
3版本,列表是以数字为键的列表字典,如果您想稍后删除某些值或类似值,则更灵活一些:

lists = {}
for i in range(len(myself)):
   lists[i] = []
关于动态变量名,即list1之类的变量而不是lists[1]。。。说真的,你可能不该这么做。这是不必要的复杂和难以维护。想想看——下个月你会想要修改脚本,你会试图找出变量list1是在哪里定义的,而你将无法通过纯文本搜索来完成这一点。这是一种痛苦。
但如果出于某种原因,您真的想这样做,那么可以使用exec或修改局部变量。另请参阅评论,了解更多关于为什么这些事情是一个坏主意的讨论,以及谈论它们会让人多么困惑。

我不确定我是否理解您的目标。请您重新表述您的问题或详细说明您试图完成的任务好吗?是的,您所说的动态名称列表到底是什么意思?[c代表c在“动态名称”中]…对不起…帮不上忙我在这里不止一次地看到这个问题,它通常以有更好的方法来解决您的问题结束。。。如果你感兴趣的话,它会像这样做:-{{}[= ][F].FATATI[我只是从旧风格过渡到.Frase]。我会认真考虑用Excel删除动态变量的那部分。这是一个糟糕的主意,甚至不应该作为一个选项提供。@jdi-这是一个糟糕的选项,但成年人和所有人都同意。。。我现在正在搜索反对使用它的好理由,如果有帮助的话,我会添加链接。是的,你应该确保强调为什么这是一个糟糕的做法。这有点像说你不应该谋杀某人,但如果你好奇的话,你可以用这些方法很容易地杀死某人;顺便说一句,一个被称为列表[0]的对象已经有了一个名称:它本身就是“列表[0]”。在某种程度上,它实际上是一个动态变量名。