#先解决仅有大小写字母没有其他字符串的案例
#思路:设计一个包含三个元素(字符,权值,索引)的元组列表,同时对权值和索引排序
#如果如果是非字母,就不添加进元组,直接输出,非字母就添加进元组后再插入

while True:
    try:
        new_string = ''
        string = input()
        d = []
        for i in range(len(string)):
            if string[i].isalpha():
                d.append((string[i],i,ord(string[i].lower())))
        d.sort(key=lambda x:(x[2],x[1]))
        flag =0
        for i in range(len(string)):
            if string[i].isalpha():
                new_string +=d[flag][0]
                flag +=1
            else:
                new_string += string[i]
        print(new_string)
    except:
        break

总结:数组中参数key对匿名函数的用法