2014-01-19 3 views
0

Say моя программа должна объявить следующие переменные, когда он начинает:Есть ли более короткий способ присвоить эти переменные?

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

В настоящее время, чтобы сделать это, я точно так, как показано выше. Мой вопрос в том, есть ли более короткий способ сделать это или даже сделать это на одной линии? В моей программе есть несколько раз, что такое происходит, и это занимает много места. Какие-либо предложения? Благодарю.

+5

обязательна ссылка: [сохранить ваши данные из ваших имен переменных] (http://nedbatchelder.com/blog/ 201112/keep_data_out_of_your_variable_names.html) – roippi

ответ

1

Вы можете попробовать следующее:

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

Я бы порекомендовал вам следовать Python naming conventions: pos_list вместо Pos_List

+0

Да, это сработает. Я, однако, [] * 8 тоже, но он возвращает только один пустой список. – tayfun

+0

Спасибо, хорошо очищает вещи. Просто для того, чтобы уточнить, поскольку я новичок в python, является ли соглашение об именовании только с использованием заглавных букв? – qwerty22

+0

Самое важное: имена классов, такие как 'CapWords'. Переменные и методы, такие как 'variable_name' или' method_name() ', для получения дополнительной информации прочитайте ссылку, которую я опубликовал. – Christian

5

На самом деле, вы должны использовать более разумную структуру данных, как

lists = {"Pos": [], "Room": [], "Type": [],...} 

вместо всех этих очень похожих имен.

+3

Альтернативой может быть 'collections.defaultdict (list)' и OP не беспокоится о предварительной инициализации типов ... Они просто используют их ... –

+3

Или 'lists = {name: [] для имени в («Pos», «Room», «Type»)} 'вместо повторения' [] 'снова и снова. – abarnert

0

И немного сумасшедший дополнения для всех этих ответов

for name in "Pos Room Type Spec Sub Rtr IPa MAC".split(): 
    globals()[name+"_List"] = [] 
Смежные вопросы