Это ужасно ужасно:
psData = []
nsData = []
msData = []
ckData = []
mAData = []
RData = []
pData = []
Существует ли способ объявить эти переменные на одной строке?
alist, blist, clist, dlist, elist = ([] for i in range(5))
Обратной стороной вышеописанного подхода является то, что вам нужно посчитать количество имен слева от =
и получить точно такое же число пустых списков (например, с помощью вызова range
или более явно) с правой стороны
.
Главное, не используйте что-то вроде
alist, blist, clist, dlist, elist = [[]] * 5
или
alist = blist = clist = dlist = elist = []
, чтобы все имена ссылались на тот же пустой список!
psData,nsData,msData,ckData,mAData,RData,pData = [],[],[],[],[],[],[]
В зависимости от ваших потребностей, вы можете рассмотреть возможность использования defaultdict с фабрикой списков. Что-то вроде:
my_lists = collections.defaultdict(list)
и тогда вы сможете напрямую добавлять в my_lists["psData"] и так далее. Вот соответствующая страница документации: http://docs.python.org/library/collections.html#collections.defaultdict