4

我有一个包含 RNA 碱基字母的列表和一个将它们转换为数值的字典。我想要做的是将这些数值存储到一个新列表中。我有:

RNA_list = ['C', 'G', 'A', 'U']
RNA_dictionary = {'A': 1, 'U': 2, 'C': 3, 'G': 4}
for i in RNA_list:
    if i in RNA_dictionary:
        RNA_integers = RNA_dictionary[i]
    else:
        print()

所以 RNA_integers 是 3、4、1、2,但我需要以某种方式将它们存储在一个列表中。我想做类似的事情:

RNA_integer_list = []
for i in RNA_integers:
    RNA_integer_list = RNA_integer_list + i

但这会导致错误,因为 for 循环无法遍历整数。我是 Python 新手,所以我不确定如何处理这个问题。如果其他人可以帮助我,我将不胜感激!

4

4 回答 4

5

你可以做

RNA_list = ['C', 'G', 'A', 'U']
RNA_dictionary = {'A': 1, 'U': 2, 'C': 3, 'G': 4}
RNA_integers = []
for i in RNA_list:
    if i in RNA_dictionary:
        RNA_integers.append (RNA_dictionary[i])

print RNA_integers

输出

[3, 4, 1, 2]

或使用列表理解

RNA_integers = [RNA_dictionary[i] for i in RNA_list if i in RNA_dictionary]
于 2013-10-30T01:18:01.870 回答
3

或者您可以使用map

map(RNA_dictionary.get, RNA_list)

于 2013-10-30T02:10:05.677 回答
1

你可以简单地做:

RNA_dictionary.values()

要得到[1, 3, 2, 4]

编辑:如果您需要将值保持在与 RNA_list 相似的顺序,您可以按照thefourtheye 的建议使用列表理解:

RNA_integers = [RNA_dictionary[i] for i in RNA_list if i in RNA_dictionary]
于 2013-10-30T01:52:07.537 回答
0

你试试这个,

RNA_list = ['C', 'G', 'A', 'U']
RNA_dictionary = {'A': 1, 'U': 2, 'C': 3, 'G': 4}
RNA_integers = []
for i in RNA_list:
    if RNA_dictionary[i]:
        RNA_integers.append (RNA_dictionary[i])

print RNA_integers

输出将是

[3,4,1,2]
于 2013-10-30T10:03:45.357 回答