程序在Python中分别以升序和降序对所有偶数和奇数进行排序

假设我们有一个称为nums的数字列表,我们必须通过遵循以下条件对数组进行排序

  • 偶数按升序排列

  • 奇数按降序排列

  • 偶数和奇数的相对位置不应更改。

因此,如果输入类似于[9,14,12,91,-4,5],则输出将为[91,-4,12,9,9,14,5]

为了解决这个问题,我们将遵循以下步骤-

  • 偶数:= nums数组中的偶数项列表

  • 赔率:= nums数组中的奇数项列表

  • 对列表进行排序

  • 偶数= 0,奇数= 0

  • 对于范围从0到nums的索引,请执行

    • nums [index]:=赔率[odd_i]

    • 奇数:=奇数+ 1

    • nums [index]:= evens [even_i]

    • even_i:= even_i + 1

    • 如果nums [index] mod 2与0相同,则

    • 除此以外,

    • 返回数字

    让我们看下面的实现以更好地理解-

    示例

    class Solution:

       def solve(self, nums):

          evens = [num for num in nums if num % 2 == 0]

          odds = [num for num in nums if num % 2 != 0]

          evens.sort()

          odds.sort(reverse=True)

          even_i = 0

          odd_i = 0

          for index in range(len(nums)):

             if nums[index] % 2 == 0:

                nums[index] = evens[even_i]

                even_i += 1

             else:

                nums[index] = odds[odd_i]

                odd_i += 1

          return nums

    ob = Solution()

    print(ob.solve([9, 14, 12, 91, -4, 5]))

    输入值

    [9, 14, 12, 91, -4, 5]

    输出结果

    [91, -4, 12, 9, 14, 5]

    以上是 程序在Python中分别以升序和降序对所有偶数和奇数进行排序 的全部内容, 来源链接: utcz.com/z/355695.html

    回到顶部