在python中按升序对列表进行奇偶排序

在python中按升序对列表进行奇偶排序,python,Python,我有一个列表listOfNumbers=[3,2,1,4,5,6,7,8,9,22,25,16,17,28]我想按升序排列这个列表,但首先是奇数,然后是偶数,如下所示: [1, 5, 7, 9, 11, 15, 19, 29,'startOF->evens', 4, 8, 10, 14, 16, 28, 32, 66] 没有排序功能 我已经试过了,但是我出错了 data_list = [3,2,1,4,5,6,7,8,9,22,25,16,17,28] new_list = [] whi

我有一个列表
listOfNumbers=[3,2,1,4,5,6,7,8,9,22,25,16,17,28]
我想按升序排列这个列表,但首先是奇数,然后是偶数,如下所示:

[1, 5, 7, 9, 11, 15, 19, 29,'startOF->evens', 4, 8, 10, 14, 16, 28, 32, 66]
没有排序功能

我已经试过了,但是我出错了

data_list = [3,2,1,4,5,6,7,8,9,22,25,16,17,28]
new_list = []
while data_list:
    minimum = data_list[0]
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)
    print (new_list)
def Huhu(data_list):
  ev_li = ''
    od_li = ''
    for i in data_list: 
        if (i % 2 == 0): 
            ev_li.append(i) 
        else: 
            od_li.append(i)
    print(new_list,od_li "startOF->evens",ev_li) 
data_list=[3,2,1,4,5,6,7,8,9,22,25,16,17,28]
新列表=[]
而数据列表:
最小值=数据列表[0]
对于数据列表中的x:
如果x<最小值:
最小值=x
新列表。追加(最小值)
数据列表。删除(最小值)
打印(新列表)
def Huhu(数据列表):
ev_li=“”
od_li=“”
对于数据列表中的i:
如果(i%2==0):
附件(一)
其他:
附后(一)
打印(新列表,od_li“开始->晚上”,ev_li)
谢谢你的回复

data_list = [3,2,1,4,5,6,7,8,9,22,25,16,17,28]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)
odds = []
evens = []
for i in new_list:
    if i % 2 == 0:
        evens.append(i)
    else:
        odds.append(i)
print(odds,"startOF->evens", evens)
data_list=[3,2,1,4,5,6,7,8,9,22,25,16,17,28]
新列表=[]
而数据列表:
最小值=数据列表[0]#列表中的任意数字
对于数据列表中的x:
如果x<最小值:
最小值=x
新列表。追加(最小值)
数据列表。删除(最小值)
赔率=[]
evens=[]
对于新列表中的i:
如果i%2==0:
evens.append(i)
其他:
附加(i)
打印(赔率,“开始->平衡”,平衡)

您可以使用带有自定义
键的
排序参数的
排序

>>> sorted(listOfNumbers, key=lambda i: (i%2==0, i))
[1, 3, 5, 7, 9, 17, 25, 2, 4, 6, 8, 16, 22, 28]

在这种情况下,您可以先按奇数/偶数排序,然后按值本身排序。

如果您想知道代码失败的原因:

data_list = [3,2,1,4,5,6,7,8,9,22,25,16,17,28]
new_list = []
while data_list:
    minimum = data_list[0]
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)
    print (new_list)
def Huhu(data_list):
    ev_li = list()
    od_li = list()
    for i in data_list: 
        if (i % 2 == 0): 
            ev_li.append(i) 
        else: 
            od_li.append(i)
    print(new_list,od_li, "startOF->evens",ev_li) 
第三:

ev_li和od_li必须是
列表


但是可以肯定的是@CoryKramer更干净:p

如果你告诉我们你得到的是哪一个错误,就更容易帮助你。我需要没有“sort”函数如果你必须编写自己的排序函数,你所要做的就是指定具体的排序依据。我知道这个方法,但我还需要一个列表,在那里我可以按升序排列偶数和奇数。这些算法是通用的。它们可以应用于任何一组值。只需使用排序算法,并将其修改为优先选择赔率。
def Huhu(data_list):
  ev_li = ''
    od_li = '' <- Here
print(new_list,od_li [here] "startOF->evens",ev_li)