the*_*ame 65 python initialization list
这非常难看:
psData = []
nsData = []
msData = []
ckData = []
mAData = []
RData = []
pData = []
Run Code Online (Sandbox Code Playgroud)
有没有办法在一行上声明这些变量?
Ale*_*lli 151
alist, blist, clist, dlist, elist = ([] for i in range(5))
Run Code Online (Sandbox Code Playgroud)
上述方法的缺点是,您需要计算左侧名称的数量,并在右侧=具有完全相同数量的空列表(例如通过range调用,或更明确地说).
最重要的是,不要使用类似的东西
alist, blist, clist, dlist, elist = [[]] * 5
Run Code Online (Sandbox Code Playgroud)
也不
alist = blist = clist = dlist = elist = []
Run Code Online (Sandbox Code Playgroud)
这将使所有名称引用相同的空列表!
YOU*_*YOU 24
psData,nsData,msData,ckData,mAData,RData,pData = [],[],[],[],[],[],[]
Run Code Online (Sandbox Code Playgroud)
根据您的需要,您可以考虑将defaultdict与list factory一起使用.就像是:
my_lists = collections.defaultdict(list)
Run Code Online (Sandbox Code Playgroud)
然后你可以直接附加到my_lists ["psData"]等等.这是相关的文档页面:http://docs.python.org/library/collections.html#collections.defaultdict