在列表中按顺序获取偶数和奇数

时间:2017-10-04 21:24:00

标签: python python-3.x

一个例子:

def get_evens_at_back(a_list):
    if not a_list:
      return []
    if a_list[0] % 2 == 1:
      return [a_list[0]] + get_evens_at_back(a_list[1:])
    return get_evens_at_back(a_list[1:])

    print("1.", get_evens_at_back([-1, 2, -3, 4, -2, 3, 5]))
    print("2.", get_evens_at_back([1, 2, -3, 4, 7, 4, -6, 3, -1]))
    print("3.", get_evens_at_back([-4, -2, 6, 8, 6, 2]))
    print("4.", get_evens_at_back([-3, -1, 3, 1, 7, 9]))
    print("5.", get_evens_at_back([]))

输出:

 1. [-1, -3, 3, 5]
 2. [1, -3, 7, 3, -1]
 3. []
 4. [-3, -1, 3, 1, 7, 9]
 5. []

我正在尝试获取一个新列表,其中包含前面列表中的所有奇数(按排序顺序)和列表后面列表中的所有偶数(按排序顺序)。如果列表为空,则该函数应返回一个空列表。我不知道如何修复它。

预期:

 1. [-3, -1, 3, 5, -2, 2, 4]
 2. [-3, -1, 1, 3, 7, -6, 2, 4, 4]
 3. [-4, -2, 2, 6, 6, 8]
 4. [-3, -1, 1, 3, 7, 9]
 5. []

2 个答案:

答案 0 :(得分:3)

您可以将Resources.Add("AsyncImagesEnabled", config.AsyncImageLoading); 与2元组一起使用,先将奇数放在第一位,然后按每个类别的数字大小排序:

sorted

答案 1 :(得分:1)

这是一个相当可读的版本,它使用filter内置函数来获取单独列表中的所有奇数/偶数值,对这些列表进行排序,然后将它们组合在一起(使用list {{ 1}}运营商):

+