У меня есть словарь следующим образом:
{'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}
Но конечно это не работает. Кто-то может дать мне подсказку?Спасибо.
Используйте
weightMatrix = []
for k in range(motifWidth):
weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
Я предполагаю, что motifWidth
содержит целое число.
В Python списки не меняют размер, пока вы им этого не скажете. Следовательно, Python выбрасывает исключение, когда вы пытаетесь изменить элемент, которого там нет. Я полагаю, что вы хотите:
weightMatrix = []
for k in range(motifWidth):
weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
Если уж на то пошло, задавая вопросы в будущем, было бы полезно включить трассировку стека, показывающую ошибку, которую вы получаете, а не просто сказать "не работает". Это поможет нам непосредственно выяснить причину проблемы, а не пытаться понять ее из вашего кода.
Надеюсь, это поможет!
weightMatrix = [{'A':0,'C':0,'G':0,'T':0} for k in range(motifWidth)]