Python - 初始化多个列表/行
这个代码看起来真糟糕:
psData = []
nsData = []
msData = []
ckData = []
mAData = []
RData = []
pData = []
有没有办法把这些变量在一行里声明呢?
7 个回答
12
根据你的需求,你可以考虑使用一个带有列表工厂的默认字典(defaultdict)。
my_lists = collections.defaultdict(list)
这样你就可以直接往 my_lists["psData"] 里添加内容,依此类推。相关的文档页面在这里: http://docs.python.org/library/collections.html#collections.defaultdict
34
psData,nsData,msData,ckData,mAData,RData,pData = [],[],[],[],[],[],[]
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
236
alist, blist, clist, dlist, elist = ([] for i in range(5))
上面这种方法的缺点是,你需要数一下等号左边有多少个名字,然后在右边也得有完全一样数量的空列表(比如通过 range
函数,或者更明确地写出来)。
最重要的是,不要使用类似下面的东西:
alist, blist, clist, dlist, elist = [[]] * 5
nor
alist = blist = clist = dlist = elist = []
这样会导致所有名字都指向同一个空列表!