Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List python按true或false对列表进行排序_List_Sorting - Fatal编程技术网

List python按true或false对列表进行排序

List python按true或false对列表进行排序,list,sorting,List,Sorting,我有一个帖子列表。每个帖子都有一个true或False值,它决定了帖子应该在列表中的哪个位置。正确的帖子应该在列表的开头,错误的帖子应该在列表的结尾。我怎样才能对这样的列表进行排序?例如: posts[0].value = True posts[1].value = False posts[2].value = False posts[3].value = True 应按如下方式进行排序: 职位[0],职位[3],职位[1],职位[2] 提前感谢您可以这样做: posts.sort(key=l

我有一个帖子列表。每个帖子都有一个true或False值,它决定了帖子应该在列表中的哪个位置。正确的帖子应该在列表的开头,错误的帖子应该在列表的结尾。我怎样才能对这样的列表进行排序?例如:

posts[0].value = True
posts[1].value = False
posts[2].value = False
posts[3].value = True
应按如下方式进行排序: 职位[0],职位[3],职位[1],职位[2]


提前感谢

您可以这样做:

posts.sort(key=lambda x: not x.value)

键用于指定一个自定义函数来比较列表中的项。该函数切换值,因为在Python中,False可以这样做:

posts.sort(key=lambda x: not x.value)

键用于指定一个自定义函数来比较列表中的项。函数切换值,因为在Python中,False这更多的是分组而不是排序,因为第一个操作打开,另一个操作打开*logn

t = (i for i in posts if i.value)
f = (i for i in posts if not i.value)
list(itertools.chain(t, f))

这更多的是分组而不是排序,因为第一个操作打开,另一个操作打开*logn

t = (i for i in posts if i.value)
f = (i for i in posts if not i.value)
list(itertools.chain(t, f))

我刚用过,告诉我们为什么没用。sorted创建另一个列表,使用列表上的sort方法更改该列表。不必担心。这确实有效。出于某种原因,我做了:分拣邮件、钥匙。。。。我想我看错了。谢谢我刚用过,告诉我们为什么没用。sorted创建另一个列表,使用列表上的sort方法更改该列表。不必担心。这确实有效。出于某种原因,我做了:分拣邮件、钥匙。。。。我想我看错了。谢谢我相信这是可行的。一开始我也在做类似的事情。然而,我想用排序来代替。谢谢,但我相信这是可行的。一开始我也在做类似的事情。然而,我想用排序来代替。谢谢