描述
    给定一个无序的列表A,其中数据均为非负整数,其中奇数和偶数各占一半。
    当奇数和偶数个数相同时,将A中的奇数和偶数分别排序,并在放入列表时保持:当i是奇数时,A[i]为奇数,i为偶数时,A[i]为偶数
    在一行内输入若干个非负整数,放入列表
    输出排序完成后的列表。
    如果输入的数据不符合本题要求,输出‘ERROR’
    本题不考虑内存限制,可使用多个列表完成操作。
    示例 1
    输入:
    4 5 7 2
    输出:[2, 5, 4, 7]
    示例 2
    输入:
    1 2 3
    输出:ERROR

    1. ls = list(map(int, input().split())) # 输入映射为整数列表
    2. n = len(ls) # 列表长度
    3. sort_ls = sorted(ls, key=lambda x: (x % 2, x)) # 先偶数后奇数,x偶数时对2取模为0,奇数时为1,再分别按从小到大排序
    4. if n % 2 == 0 and sort_ls[n // 2] % 2 == 1 and sort_ls[n // 2 - 1] % 2 == 0: # 奇偶各占一半
    5. new = list(zip(sort_ls[:n // 2], sort_ls[n // 2:])) # 列表前一半和后一半一一组合为子列表
    6. print(sum([list(x) for x in new], [])) # 多个子列表拼接为一个列表
    7. else:
    8. print('ERROR')