ここに問題がありsorted
ます。関数を使用して、英数字文字列のリストを配置しています。上記の文字列は、文字で区切られた数字でなければなりません。
例えば:sortqns(['s1q1', 's10q1', 's1q2', 's10q10', 's10q2'])
def cmpqn(a, b):
if len(a) > len(b):
return 1
if len(a) < len(b):
return -1
if len(a) == len(b):
return 0
def sortqns(qnlist):
new = sorted(qnlist, cmp=cmpqn)
return new
戻り値['s1q1', 's1q2', 's10q1', 's10q2', 's10q10']
私の問題は、2桁目をソートすることです:
sortqns(['s12q1', 's1q2', 's1q1'])
Returns ['s1q2', 's1q1', 's12q1']
それ以外の:
Returning ['s1q1', 's1q2', 's12q1']
最初の例では、最初の 2 つのアイテムも交換された場合、希望するリターンはオフになります。