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 と同様の順序で値を保持する必要がある場合は、thefourthey が示唆するようにリスト内包表記を使用できます

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 に答える