簡體   English   中英

python按真或假排序列表

[英]python sorting list by true or false

我有一個帖子列表。 每個帖子都有一個Ture或False值,該值確定該帖子應在列表中的哪個位置。 正確的帖子應該位於列表的開頭,而錯誤的帖子應該位於列表的結尾。 我如何排序這樣的列表? 例如:

posts[0].value = True
posts[1].value = False
posts[2].value = False
posts[3].value = True

應該這樣排序:post [0],post [3],post [1],post [2]

提前致謝

您可以這樣做:

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

key用於指定自定義函數以比較列表中的項目。 該函數切換value因為在Python中為False < True

這比排序更重要,因為第一個操作是O(n),另一個操作是O(n * 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM