2017-08-30 3 views
1

変数リストbasesが入っているリストを、20以上のリストからチェックしたいと思います。私の現在のソリューションは動作しますが、それは不器用なと厄介だ:多くの変数の中でどのリストがあるかを調べるきれいな方法

合計で
bases = "aau"  

ala = ["gca","gcu","gcg","gcc"] 
arg = ["agg","aga","cgg","cga","cgc","cgu"] 
asn = ["aau","aac"] 
# etc - tons of arrays 

if bases in ala: 
    return "Alanin" 
if bases in arg: 
    return "Arginin" 
if bases in asn: 
    return "Asparagin" 
# etc - tons of checks 

、小切手のリストのすべてとすべてで、この関数は69行です。どうすればこれをきれいにすることができますか?

+1

これはhttps://codereview.stackexchange.com/ ための質問「クリーンアップ」あなたexsiting、作業コード – Unlockedluca

+0

@Unlockedlucaに私たちを聞かないでこの問題は私にはあまり意味がありません。私はサンプルコードなしでこの質問を提出することができた。それがここに属していることを確かめてください。 –

答えて

3

定義したリストに名前を「マップ」する辞書を使用できます。そして、あなたは単にその辞書を反復処理することができます:

bases = "aau" 

dct = {"Alanin": ["gca","gcu","gcg","gcc"], 
     "Arginin": ["agg","aga","cgg","cga","cgc","cgu"], 
     "Asparagin": ["aau","aac"]} 

for name, lst in dct.items(): 
    if bases in lst: 
     return name 
関連する問題