我有一个包含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的新手,所以我不确定如何处理这个问题。如果其他人能帮助我,我将不胜感激!
发布于 2013-10-30 09:18:02
你可以做到
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]或者使用list comprehension
RNA_integers = [RNA_dictionary[i] for i in RNA_list if i in RNA_dictionary]发布于 2013-10-30 10:10:06
或者,您可以使用map
map(RNA_dictionary.get, RNA_list)
发布于 2013-10-30 09:52:08
您可以简单地这样做:
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]https://stackoverflow.com/questions/19672101
复制相似问题