Python- 새로운 목록 / 줄 초기화
이것은 매우 추합니다.
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
좀 더 접근 방식 :
alist, blist, clist, dlist, elist = ([] for _ in xrange(5))
[ 참고 ] :
xrange()
보다 최적화range()
의 Python2 . ( 참조 )i
변수는 사용하므로 사용할 수_
없습니다. ( 참조 )xrange()
Python3에 정의되어 있지 않습니다 .
단정함은 성능의 결과와 함께 올 수 있음을 명심하십시오. 범위 함수 호출은 초기화 프로세스를 약간 느리게합니다. 변수를 여러 번 다시 초기화해야하는 프로세스가 있는지주의하십시오.
import time
def r_init():
st=time.time()
alist, blist, clist, dlist, elist = ([] for i in range(5))
et=time.time()
print("{:.15f}".format(et-st))
def p_init():
st=time.time()
alist=[];blist=[];clist=[];dlist=[];elist=[]
et=time.time()
print("{:.15f}".format(et-st))
for x in range(1,10):
r_init()
p_init()
print("\n")
클래스를 사용하여 데이터를 초기화 / 수 있으며, 더 많은 수 있으며, 더 많은 읽기 라인 지향적 일 수 있습니다.
처럼 :
class Data:
def __init__(self):
self.var1=[]
<etc.>
def zeroize(self):
self.var1=[]
<etc.>
그런 다음 시작 부분에서 다음을 수행합니다.
data=Data()
그런 다음 루프 또는 메인 포스트 선언의 어느 곳에서나 클래스를 사용할 수 있습니다.
data.var1.append(varN)
if(something):
data.zeroize()
라인을 따라 뭔가
alist, blist, clist, dlist, elist = ([],)*5
가장 우아한 해결책으로 보일 것입니다.
참고 URL : https://stackoverflow.com/questions/2402646/python-initializing-multiple-lists-line
'ProgramingTip' 카테고리의 다른 글
나중에 다시 다시 작업 할 수 있도록 코드에 플래그를 지정하는 방법은 무엇입니까? (0) | 2020.11.29 |
---|---|
Vim에서 검색 하이라이트를 제거하는 방법 (0) | 2020.11.29 |
NSString의 마지막 문자를 확인하는 방법 (0) | 2020.11.29 |
NSString의 마지막 문자를 확인하는 방법 (0) | 2020.11.29 |
Modernizr 파일을 헤드에 배치해야합니까? (0) | 2020.11.29 |