2014-01-19 2 views
0

는 시작할 때 내 프로그램은 다음과 같은 변수를 선언 할 필요 말 :이러한 변수를 할당하는 더 짧은 방법이 있습니까?

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

감사합니다. 깨끗하게 정리하십시오. 그냥 파이썬을 처음 접했기 때문에 대문자 사용에 관한 명명 규칙 문제가 무엇인지 명확히하기 위해? – 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"] = [] 
관련 문제