首页  >  文章  >  后端开发  >  如何测试 Python 列表中多个值的成员资格?

如何测试 Python 列表中多个值的成员资格?

Linda Hamilton
Linda Hamilton原创
2024-10-28 04:37:30474浏览

How to Test Membership of Multiple Values in a Python List?

列表中多个值的成员资格测试

问题:

如何进行一次测试如果多个值是Python中列表的成员?预期结果是返回一个布尔值,指示每个值的成员资格,但当前方法会产生意外的输出。

解释:

提供的代码片段,' ['b', 'a', 'foo', 'bar'] 中的 a','b' 未按预期运行,因为 Python 将其解释为元组而不是单个值的成员资格测试。

答案:

要正确测试列表中多个值的成员资格,请使用以下表达式:

<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])</code>

如果所有值都在列表中,则返回 True第二个列表是第一个列表的成员,否则为 False。

其他选项:

使用集合:

<code class="python">set(['a', 'b']).issubset(set(['a', 'b', 'foo', 'bar']))
{'a', 'b'} <= {'a', 'b', 'foo', 'bar'}</code>

当列表中的元素可哈希时,此方法效果很好,但如果列表很大,则效率可能较低。

速度测试:

基准结果显示子集测试(使用集合)通常比 all 表达式更快,但差异并不显着,除非列表很小并且子集操作与集合一起使用。但是,如果列表中的元素不可散列或者列表很大,则 all 表达式可能会更有效。

结论:

使用 all 表达式通常是测试列表中多个值的好习惯,特别是当元素不可散列并且需要考虑效率时。如果元素是可散列的并且列表很小,则子集测试可以提供轻微的速度优势。

以上是如何测试 Python 列表中多个值的成员资格?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn