我设计了一个计算'CG'出现在字符串中的百分比的代码; GC_content(DNA)。如何打印变量名称
现在我可以使用此代码,以便它打印具有最高GC内容的字符串的值;
print (max((GC_content(DNA1)),(GC_content(DNA2)),(GC_content(DNA3)))).
现在我该如何打印这个max GC_content的变量名?
我设计了一个计算'CG'出现在字符串中的百分比的代码; GC_content(DNA)。如何打印变量名称
现在我可以使用此代码,以便它打印具有最高GC内容的字符串的值;
print (max((GC_content(DNA1)),(GC_content(DNA2)),(GC_content(DNA3)))).
现在我该如何打印这个max GC_content的变量名?
你可以得到一些元组的max
:
max_content, max_name = max(
(GC_content(DNA1), "DNA1"),
(GC_content(DNA2), "DNA2"),
(GC_content(DNA3), "DNA3")
)
print(max_name)
如果有许多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]
这样具有允许变量列表长度
的好处你似乎想
max([DNA1, DNA2, DNA3], key=GC_content)
这不是你问,但它似乎是你需要。
要访问全局名称空间中的名称列表,您可以使用'globals()'。 – Shashank
变量名通常不可打印,请参见[在运行时在python中检索变量名?](http://stackoverflow.com/questions/932818/retrieving-a-variables-name-in-python-at-runtime),但这里的答案提供了一些很好的解决方法。 – askewchan