首页 > 后端开发 > Python教程 > 如何根据条件高效对列表进行分区?

如何根据条件高效对列表进行分区?

Barbara Streisand
发布: 2024-12-13 16:23:20
原创
396 人浏览过

How Can I Efficiently Partition a List Based on a Condition?

根据条件对列表进行分区

根据给定条件将列表分成两部分时,很容易迭代列表两次,创建两个新列表,如下所示:

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)
登录后复制

在此代码中:

  • 我们初始化两个空列表,好和坏,来存储分区元素.
  • 我们迭代 mylist 的元素。
  • 对于每个元素 x,我们使用表达式(bad, good)[x in goodvals] 根据 goodvals 中的条件 x 选择适当的列表。
  • 如果 x 不满足条件,则该表达式计算为 bad,否则计算为 good。
  • 我们使用append方法将x附加到选定的列表中。

这种方法避免了两次单独迭代的需要,通过减少列表的数量来提高性能从二到一的遍历。它也被认为更优雅,因为它以简洁易读的方式捕获分区逻辑。

以上是如何根据条件高效对列表进行分区?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板