Adr*_*all 57 python arrays dictionary list
我有一本字典如下:
{'A':0,'C':0,'G':0,'T':0}
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含许多字典的数组,如下所示:
[{'A':0,'C':0,'G':0,'T':0},{'A':0,'C':0,'G':0,'T':0},{'A':0,'C':0,'G':0,'T':0},...]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
weightMatrix = []
for k in range(motifWidth):
weightMatrix[k] = {'A':0,'C':0,'G':0,'T':0}
Run Code Online (Sandbox Code Playgroud)
但当然它不起作用.有人能给我一个暗示吗?谢谢.
小智 57
这就是我做的方式,它的工作原理如下:
dictlist = [dict() for x in range(n)]
Run Code Online (Sandbox Code Playgroud)
它为您提供了n个空字典列表.
dan*_*n04 29
weightMatrix = [{'A':0,'C':0,'G':0,'T':0} for k in range(motifWidth)]
Run Code Online (Sandbox Code Playgroud)
Tim*_*ker 11
使用
weightMatrix = []
for k in range(motifWidth):
weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
Run Code Online (Sandbox Code Playgroud)
小智 7
尝试这个:
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
Run Code Online (Sandbox Code Playgroud)
使用list构造函数对user1850980的答案(对于如何初始化空字典列表的问题)的一个小变化:
dictlistGOOD = list( {} for i in xrange(listsize) )
Run Code Online (Sandbox Code Playgroud)
我发现我的懊恼,这不起作用:
dictlistFAIL = [{}] * listsize # FAIL!
Run Code Online (Sandbox Code Playgroud)
因为它创建了对同一个空字典的引用列表,所以如果更新列表中的一个字典,所有其他引用也会更新.
尝试这些更新以查看差异:
dictlistGOOD[0]["key"] = "value"
dictlistFAIL[0]["key"] = "value"
Run Code Online (Sandbox Code Playgroud)
(我实际上是在寻找用户1850980对所提问题的答案,所以他/她的回答是有帮助的.)