有没有一种方法可以按字母顺序对字符串排序(首字母大写)?

时间:2019-03-22 23:27:12

标签: python sorting alphabetical-sort

我正在编写一个程序,试图显示双杂交方形的基因型比例。我已经可以创建答案了,但是我需要对其进行排序。

Example = answer_one =“ aTAt”

我需要对它进行排序,以使答案变为“ AaTt”。基本上,排序方法需要使字符串按字母顺序排列,并将大写字母放在小写字母之前。

当我尝试对其进行排序时,它将变成aAtT,而这正是我所不想要的。

1 个答案:

答案 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'