[英]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.