用一种干净的方法检查一个变量在多个列表中的哪个列表中

2024-09-29 00:20:12 发布

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

我想检查变量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行。我该怎么清理


Tags: ofin列表returnifargetc解决方案
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:12

您可以使用一个字典将名称“映射”到您定义的列表。然后你可以简单地遍历字典:

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

相关问题 更多 >