根據條件對列表進行分區
根據給定條件將列表分成兩部分時,很容易迭代列表兩次,創建兩個新列表,如下所示:
good = [x for x in mylist if x in goodvals] bad = [x for x in mylist if x not in goodvals]
但是,這種方法需要兩個單獨的列表對列表進行迭代,這可能效率低下。為了提高效能,請考慮使用帶有條件附加的手動迭代:
good, bad = [], [] for x in mylist: (bad, good)[x in goodvals].append(x)
在此程式碼中:
這種方法避免了兩次單獨迭代的需要,透過減少列表的數量來提高性能從二到一的遍歷。它也被認為更優雅,因為它以簡潔易讀的方式捕捉分割區邏輯。
以上是如何根據條件有效率地對清單進行分區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!