使用 Python 的内置排序函数和一些排序规则,可以解决这个问题。
示例代码如下:
def sort_string(s):
# 定义排序规则,将对应类别的字符放到对应的位置
order = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-=[]{}|;':\",./<>?"
# 使用排序规则对字符串进行排序
sorted_str = sorted(s, key=lambda x: order.index(x))
# 返回排序后的字符串
return "".join(sorted_str)
# 测试
s = "sortME321!#@"
print(sort_string(s)) # 输出:eorstME123!#@%
在上面的代码中,我们首先定义了一个排序规则 order
,将小写字母、大写字母、数字、符号按照顺序放到了一起。然后使用 Python 内置的 sorted
函数,对字符串 s
中的每个字符进行排序,排序时通过 key
参数指定排序规则为按照 order
中字符的位置进行排序。最后使用 join
函数将排序后的字符列表组合成字符串返回。