gpt4 book ai didi

python - 根据项目是奇数还是偶数对列表进行排序

转载 作者:行者123 更新时间:2023-11-28 20:05:06 28 4
gpt4 key购买 nike

我正在尝试根据数字是奇数还是偶数(甚至获得更高的优先级)对数字列表进行排序。示例:

a=[1,2,3,4] 
a.sort(key=org(a)) sorted will produce [2,4,1,3]. I want to use the sort method

def org(a):
for i in range(len(a)):
if a[i]%2==0:
b.append(a[i])
b.sort()
else:
c.append(a[i])
c.sort()
print(b+c)

我在运行 a.sort(key=org(a)) 时遇到了这个错误

Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
a.sort(key=org(a))
TypeError: 'list' object is not callable

我意识到每次排序都会变慢。还有什么其他方法可以做到这一点而不必在每个循环后进行排序?

最佳答案

要按“均匀度”排序,然后按幅度排序,您可以使用返回 tuple

的函数
>>> a=[1,2,3,4] 
>>> a.sort(key=lambda x: (x % 2, x))
>>> a
[2, 4, 1, 3]

要首先对奇数条目进行排序,您可以简单地取反模数的值。通常,这是反转数字字段排序的有用技巧。

>>> a.sort(key=lambda x:(-(x % 2), x))
>>> a
[1, 3, 2, 4]

关于python - 根据项目是奇数还是偶数对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33093343/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com