在lis中存储整数集合

2024-03-29 11:11:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含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_整数是3,4,1,2,但我需要以某种方式将它们存储在一个列表中。我想做些类似的事情:

^{pr2}$

但这会导致一个错误,因为for循环不能迭代整数。我是Python新手,所以不知道如何处理这个问题。如果有人能帮我,我会非常感激的!在


Tags: integersin列表fordictionaryif字典字母
3条回答

你能做到的

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

输出

^{pr2}$

或者使用list comprehension

RNA_integers = [RNA_dictionary[i] for i in RNA_list if i in RNA_dictionary]

或者您可以使用map

map(RNA_dictionary.get, RNA_list)

您只需:

RNA_dictionary.values()

得到[1, 3, 2, 4]

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

^{pr2}$

相关问题 更多 >