Python程序:按自定义顺序排序字符串

Python程序:按自定义顺序排序字符串

假设我们有一个字母数字混合的字符串s,我们必须根据以下条件对它进行排序

  • 所有已排序的小写字母将排在大写字母之前。

  • 所有已排序的大写字母将排在数字之前。

  • 所有已排序的奇数数字将排在已排序的偶数数字之前。

因此,如果输入为s =“HeLlo1234”,则输出将为eloHL1324

为了解决这个问题,我们将按以下步骤进行−

  • 定义一个函数f()。这将采用c
  • code:= 0
  • 如果c是大写字母,则
    • code:= 10 ^ 3
  • 否则,当c是数字时,那么
    • code:= 10 ^ 6
  • 如果c的ASCII是偶数,则
    • code:= 10 ^ 9
  • 返回代码+ c的ASCII值
  • 在主方法中执行以下操作
  • l:=已排序的s列表,并通过调用f()函数对s中的每个字符c进行排序
  • 连接l中的每个字符并返回

示例

让我们看看以下实现以便更好地理解

def f(c):
   code = 0
   if c.isupper():
      code = 10 ** 3
   elif c.isdigit():
      code = 10 ** 6
      if ord(c) % 2 == 0:
         code = 10 ** 9
   return code + ord(c)

def solve(s):
   l = sorted(s, key=lambda c: f(c))
   return ''.join(l)

s = "HeLlo1234"
print(solve(s))

输入

"HeLlo1234"

输出

eloHL1324

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程