首頁  >  文章  >  後端開發  >  如何測試 Python 清單中多個值的成員資格?

如何測試 Python 清單中多個值的成員資格?

Linda Hamilton
Linda Hamilton原創
2024-10-28 04:37:30370瀏覽

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