파이썬에서 배열 / 사전 목록을 어떻게 만들 수 있습니까?
다음과 같은 사전이 있습니다.
{'A':0,'C':0,'G':0,'T':0}
다음과 같이 많은 사전이 포함 된 배열을 만들고 싶습니다.
[{'A':0,'C':0,'G':0,'T':0},{'A':0,'C':0,'G':0,'T':0},{'A':0,'C':0,'G':0,'T':0},...]
이것은 내 코드입니다.
weightMatrix = []
for k in range(motifWidth):
weightMatrix[k] = {'A':0,'C':0,'G':0,'T':0}
그러나 물론 작동하지 않습니다. 누군가 나에게 힌트를 줄 수 있습니까? 감사.
이것이 내가 한 방법이며 작동합니다.
dictlist = [dict() for x in range(n)]
n 개의 빈 사전 목록을 제공합니다.
weightMatrix = [{'A':0,'C':0,'G':0,'T':0} for k in range(motifWidth)]
사용하다
weightMatrix = []
for k in range(motifWidth):
weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
목록 생성자를 사용하여 user1850980의 답변 ( "빈 사전 목록을 초기화하는 방법"질문에 대한)의 사소한 변형 :
dictlistGOOD = list( {} for i in xrange(listsize) )
나는 내 우울함을 알았는데 이것은 작동하지 않습니다.
dictlistFAIL = [{}] * listsize # FAIL!
동일한 빈 사전 에 대한 참조 목록을 생성하므로 목록에서 하나의 사전을 업데이트하면 다른 모든 참조도 업데이트됩니다.
차이점을 확인하려면 다음 업데이트를 시도하십시오.
dictlistGOOD[0]["key"] = "value"
dictlistFAIL[0]["key"] = "value"
(실제로 질문에 대한 user1850980의 답변을 찾고 있었기 때문에 답변이 도움이되었습니다.)
motifWidth
정수 가 포함되어 있다고 가정합니다 .
Python에서 목록은 사용자가 지시하지 않는 한 크기를 변경하지 않습니다. 따라서 Python은 존재하지 않는 요소를 변경하려고 할 때 예외를 발생시킵니다. 나는 당신이 원한다고 믿는다 :
weightMatrix = []
for k in range(motifWidth):
weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
나중에 질문 할 때 "작동하지 않습니다"라고 말하는 것보다 발생한 오류를 보여주는 스택 추적을 포함하면 도움이 될 것입니다. 그러면 코드에서 문제를 해결하는 대신 문제의 원인을 직접 파악하는 데 도움이됩니다.
도움이 되었기를 바랍니다.
이 시도:
lst = []
##use append to add items to the list.
lst.append({'A':0,'C':0,'G':0,'T':0})
lst.append({'A':1,'C':1,'G':1,'T':1})
##if u need to add n no of items to the list, use range with append:
for i in range(n):
lst.append({'A':0,'C':0,'G':0,'T':0})
print lst
사전:
dict = {'a':'a','b':'b','c':'c'}
사전 배열
arr = (dict,dict,dict)
arr
({'a': 'a', 'c': 'c', 'b': 'b'}, {'a': 'a', 'c': 'c', 'b': 'b'}, {'a': 'a', 'c': 'c', 'b': 'b'})
참조 URL : https://stackoverflow.com/questions/2397754/how-can-i-create-an-array-list-of-dictionaries-in-python
'IT박스' 카테고리의 다른 글
Java : Eclipse에서 .jar 파일로 내보내기 (0) | 2020.12.31 |
---|---|
내 콤보 상자에서 마우스 휠 스크롤을 방지하려면 어떻게합니까? (0) | 2020.12.30 |
파이썬에서 큰 json 파일을로드하는 메모리 효율적이고 빠른 방법이 있습니까? (0) | 2020.12.30 |
VBA (Excel)에서 오류를 올바르게 처리 (0) | 2020.12.30 |
C / C ++ 파일에서 Android NDK의 컴파일을 감지하는 방법은 무엇입니까? (0) | 2020.12.30 |