Python - Инициализация нескольких списков/Строк

Это ужасно ужасно:

psData = []
nsData = []
msData = []
ckData = []
mAData = []
RData = []
pData = []

Существует ли способ объявить эти переменные на одной строке?

64
задан thenickname 8 March 2010 в 16:03
поделиться

3 ответа

alist, blist, clist, dlist, elist = ([] for i in range(5))

Обратной стороной вышеописанного подхода является то, что вам нужно посчитать количество имен слева от = и получить точно такое же число пустых списков (например, с помощью вызова range или более явно) с правой стороны .

Главное, не используйте что-то вроде

alist, blist, clist, dlist, elist = [[]] * 5

или

alist = blist = clist = dlist = elist = []

, чтобы все имена ссылались на тот же пустой список!

151
ответ дан 24 November 2019 в 15:40
поделиться
psData,nsData,msData,ckData,mAData,RData,pData = [],[],[],[],[],[],[]
24
ответ дан 24 November 2019 в 15:40
поделиться

В зависимости от ваших потребностей, вы можете рассмотреть возможность использования defaultdict с фабрикой списков. Что-то вроде:

my_lists = collections.defaultdict(list)

и тогда вы сможете напрямую добавлять в my_lists["psData"] и так далее. Вот соответствующая страница документации: http://docs.python.org/library/collections.html#collections.defaultdict

9
ответ дан 24 November 2019 в 15:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: