Как я могу создать массив/список словарей в Python?

У меня есть словарь следующим образом:

{'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}

Но конечно это не работает. Кто-то может дать мне подсказку?Спасибо.

57
задан Tim Pietzcker 8 December 2014 в 07:04
поделиться

3 ответа

Используйте

weightMatrix = []
for k in range(motifWidth):
    weightMatrix.append({'A':0,'C':0,'G':0,'T':0})
11
ответ дан 24 November 2019 в 19:33
поделиться

Я предполагаю, что motifWidth содержит целое число.

В Python списки не меняют размер, пока вы им этого не скажете. Следовательно, Python выбрасывает исключение, когда вы пытаетесь изменить элемент, которого там нет. Я полагаю, что вы хотите:

weightMatrix = []
for k in range(motifWidth):
    weightMatrix.append({'A':0,'C':0,'G':0,'T':0})

Если уж на то пошло, задавая вопросы в будущем, было бы полезно включить трассировку стека, показывающую ошибку, которую вы получаете, а не просто сказать "не работает". Это поможет нам непосредственно выяснить причину проблемы, а не пытаться понять ее из вашего кода.

Надеюсь, это поможет!

4
ответ дан 24 November 2019 в 19:33
поделиться
weightMatrix = [{'A':0,'C':0,'G':0,'T':0} for k in range(motifWidth)]
29
ответ дан 24 November 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: