【问题标题】:Clean way to check which list, out of many, a variable is in干净的方法来检查哪个列表中的变量在
【发布时间】:2018-02-08 02:05:53
【问题描述】:

我想检查变量 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 行。我该如何清理它?

【问题讨论】:

  • 这是codereview.stackexchange.com 的问题,不要要求我们“清理”您现有的工作代码
  • @Unlockedluca 这个问题很难针对我。我可以在没有示例代码的情况下提交这个问题,不会改变一毛钱。很确定它确实属于这里。

标签: python list loops contains


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-07-05
    • 2014-10-26
    • 1970-01-01
    • 2012-11-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多