Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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_Variables - Fatal编程技术网

Python 有没有一种更短的方法来分配这些变量?

Python 有没有一种更短的方法来分配这些变量?,python,variables,Python,Variables,假设我的程序启动时需要声明以下变量: Pos_List = [] Room_List = [] Type_List = [] Spec_List = [] Sub_List = [] Rtr_List = [] IPa_List = [] MAC_List = [] 目前要做到这一点,我已经完全如上图所示。我的问题是,有没有一种更短的方法可以做到这一点,或者甚至可以在一条线上做到这一点?在我的程序中有好几次发生这种事情,它占用了很多空间。有什么建议吗?谢谢。您可以尝试以下方法: Po

假设我的程序启动时需要声明以下变量:

Pos_List  = []
Room_List = []
Type_List = []
Spec_List = []
Sub_List  = []
Rtr_List  = []
IPa_List  = []
MAC_List  = []

目前要做到这一点,我已经完全如上图所示。我的问题是,有没有一种更短的方法可以做到这一点,或者甚至可以在一条线上做到这一点?在我的程序中有好几次发生这种事情,它占用了很多空间。有什么建议吗?谢谢。

您可以尝试以下方法:

Pos_List, Room_List, Type_List, Spec_List, Sub_List, Rtr_List, IPa_List, MAC_List = [], [], [], [], [], [], [], []

我建议您遵循:
pos\u list
而不是
pos\u list
实际上,您应该使用更合理的数据结构,如

lists = {"Pos": [], "Room": [], "Type": [],...}
而不是所有这些非常相似的名字。

。请尝试以下方法:

Pos_List, Room_List, Type_List, Spec_List, Sub_List, Rtr_List, IPa_List, MAC_List = [[]for _ in range(8)]

所有这些答案都有点疯狂

for name in "Pos Room Type Spec Sub Rtr IPa MAC".split():
    globals()[name+"_List"] = []

是的,那会有用的。我想[]*8也会,但它只返回一个空列表。谢谢,很好地解决了问题。我只是想澄清一下,因为我是python新手,命名约定的问题仅仅是关于大写字母的使用吗?最重要的是:类名称,如
CapWords
。变量和方法,如
variable\u name
method\u name()
,有关详细信息,请阅读我发布的链接。@tayfun:您要做的是
[[]]*8
,它返回一个包含8个空列表的列表。除了它实际上返回了8次相同的空列表,这可能不是你想要的。在这种情况下:
[[]对于范围(8)]
。虽然这可能不是做我想做的事情的“最佳”方式,但我将按照Christian建议的原始方式去做,因为我最了解它,并且我不希望在程序的其余部分看到需要的编辑。感谢所有提供建议的人强制性链接:另一种选择可能是
collections.defaultdict(list)
,OP不必担心预先初始化类型。。。他们只是使用它们…或者
列表={name:[]作为“Pos”,“Room”,“Type”)}
,而不是反复重复
[]