1

我设计了一个代码来计算“CG”出现在字符串中的百分比;GC_content(DNA)。

现在我可以使用这段代码来打印具有最高 GC 内容的字符串的值;

print (max((GC_content(DNA1)),(GC_content(DNA2)),(GC_content(DNA3)))).

现在我将如何打印这个 max GC_content 的变量名?

4

3 回答 3

5

你可以得到max一些元组的:

max_content, max_name = max(
    (GC_content(DNA1), "DNA1"),
    (GC_content(DNA2), "DNA2"),
    (GC_content(DNA3), "DNA3")
)

print(max_name)
于 2013-09-29T22:01:02.097 回答
1

如果您有许多 DNA 变量,您可以将它们放在一个列表中

DNA_list = [DNA1, DNA2, DNA3]

我会强制他们进入字典,以将名称与原始数据和结果相关联。

DNA_dict = dict([("DNA%i" % i, {'data': DNA, 'GC': GC_Content(DNA)}) for i, DNA in enumerate(DNA_list)])

然后列出理解以获取您想要的数据

name = max([(DNA_dict[key]['GC'], key) for key in DNA_dict])[1]

这具有允许可变列表长度的好处

于 2013-09-29T22:15:27.367 回答
0

你似乎想要

max([DNA1, DNA2, DNA3], key=GC_content)

这不是你要求的,但它似乎是你需要的。

于 2013-09-29T22:29:03.840 回答