我正在编写一个程序,试图显示双杂交方形的基因型比例。我已经可以创建答案了,但是我需要对其进行排序。
Example = answer_one =“ aTAt”
我需要对它进行排序,以使答案变为“ AaTt”。基本上,排序方法需要使字符串按字母顺序排列,并将大写字母放在小写字母之前。
当我尝试对其进行排序时,它将变成aAtT,而这正是我所不想要的。
答案 0 :(得分:0)
您需要定义一个自定义排序。这是一种方法:
import functools
def cmp(a,b):
if a.upper() < b.upper():
return -1
elif a.upper() == b.upper() and a < b:
return -1
elif a == b:
return 0
else:
return 1
def punnet_sort(s):
return ''.join(sorted(s,key=functools.cmp_to_key(cmp)))
例如,
>>> punnet_sort('aTAt')
'AaTt'