我設計了一個計算'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