首先按小写顺序排序,然后按大写顺序排序,然后将数字排序为

问题描述

我编写的代码如下。即使我得到所需的输出,有人可以告诉我这里是什么问题吗?

p = list(input())
upper_case=[]
lower_case=[]
no=[]
for i in p:
    if i.isalpha() and i.isupper():
        upper_case.append(i)
    if i.isalpha() and i.islower():
        lower_case.append(i)
    if i.isdigit():
        no.append(i)
upper_case.sort()
lower_case.sort()
no.sort()
lower_case.extend(upper_case)
lower_case.extend(no)
output = "".join(lower_case)
print(output)

输入为Sorting1234。我的输出是ginortS1234。预期的输出为ginortS1324。我们也必须对数字进行排序,以使奇数先出现,您可以帮助我简化这段代码

解决方法

我假设这是家庭作业或某些东西,而您应该以某种方式或某种方式来做呢?规格是什么?

无论如何我都会缩短您的代码

p = "Sorting1234"
upper_case = sorted([i for i in p if i.isupper()])
lower_case = sorted([i for i in p if i.islower()])
no = sorted([i for i in p if i.isdigit()])

output = "".join(lower_case + upper_case + no)
print(output)

或者更好,因此您不必进行多次排序:

p = "Sorting1234"
p = sorted(p)

output = [i for i in p if i.islower()] + \
    [i for i in p if i.isupper()] + \
    [i for i in p if i.isdigit()]

print("".join(output))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...