我想返回一个已排序数字的列表,这样奇数就会出现,而偶数就会出现。
示例: my_sort([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
=> [1, 3, 5, 7, 9, 2, 4, 6, 8]
我的解决方案是返回一个空列表。
def my_sort(lst):
sortd_lst = sorted([xfor x in lst if x % 2 == 1 and x % 2 == 0])
return sortd_lst
答案 0 :(得分:2)
你误解了你的代码在做什么。
sortd_lst = sorted([xfor x in lst if x % 2 == 1 and x % 2 == 0])
您的代码正在检查数字是否偶数和奇数,这显然是不可能的。因此,你会得到一个空列表。您需要单独检查这些条件。
这是你想要的:
sortd_lst = [*sorted(x for x in lst if x % 2 == 1), *sorted(x for x in lst if x % 2 == 0)]
这将分别生成奇数和偶数两个单独的排序列表,然后将它们解压缩到sortd_lst
。