我有一个包含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的新手,所以我不知道如何处理这个问题。如果其他人可以帮助我,我真的很感激!
答案 0 :(得分: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]
答案 1 :(得分:3)
或者您可以使用map
:
map(RNA_dictionary.get, RNA_list)
答案 2 :(得分: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]
答案 3 :(得分: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
out put将是
[3,4,1,2]