Python奇偶整数排序

给定10个整数序列,空格隔开。
奇数在前,偶数在后
奇数按从大到小排序
偶数按从小到大排序
输出为一行,空格隔开

img


#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""

if __name__ == '__main__':
    data = "1 2 3 4 5 6 7 8 9 10"
    data = list(map(int, data.split()))
    print(data)
    # 偶数
    even = [i for i in data if i % 2 == 0]
    print(even)
    # 奇数
    odd = [i for i in data if i % 2 == 1]
    print(odd)

    # 奇数按从大到小排序
    odd.sort(reverse=True)
    # 偶数按从小到大排序
    even.sort()
    # 奇数在前,偶数在后
    # 输出为一行,空格隔开
    res = " ".join(str(i) for i in (odd + even))
    print(res)

望采纳,谢谢!

data = input().split(" ")
data = list(map(lambda a : int(a), data))
#print(data)
lst1 = []
lst2 = []
for i in data:
    if i % 2 ==0:
        lst2.append(i)
    else:
        lst1.append(i)
lst1.sort(reverse=True)
lst2.sort()
for i in lst1:
    print(i, end = ' ')
for i in lst2:
    print(i, end=' ')


img

lista = input().split(" ")
lista = list(map(lambda x : int(x), lista))
listO = [] #奇
listE = [] #偶
for i in lista:
  if i%2 ==0:
    listE.append(i)
  elif i%2 == 1:
    listO.append(i)
for j in range(1,len(listE)):
    for i in range(len(listE)-1):
        if listE[i] > listE[i+1]:
            listE[i], listE[i+1] = listE[i+1],listE[i]
for j in range(1,len(listO)):
    for i in range(len(listO)-1):
        if listO[i] < listO[i+1]:
            listO[i], listO[i+1] = listO[i+1],listO[i]
a = " ".join(listO) + " ".join(listE)#这个不行的话就挨个join然后放一起
print(a)