Python程式用於測試清單中是否存在任何集合元素

WBOY
發布: 2023-09-04 21:49:04
轉載
1173 人瀏覽過

Python程式用於測試清單中是否存在任何集合元素

在本文中,我們將學習如何在 python 中檢查清單中是否存在任何集合元素。

使用的方法

  • 使用any()函數

  • #使用位元 & 運算子

  • 使用 Counter()、filter() 和 lambda 函數

範例

假設我們已經採用了輸入集輸入清單。我們現在將使用上述方法檢查輸入清單中是否存在任何輸入集元素。

輸入

inputSet = {4, 8, 1, 3, 5, 7}
inputList = [7, 15, 20]
登入後複製

輸出

Checking whether any set element present in the input list: True
登入後複製

在上面的範例中,集合和清單中都存在 7,因此結果為 True

方法一:使用any()函數

如果可迭代物件中的任何一項為 true,則 any() 函數傳回 True,否則傳回 False。

文法

any(iterable)
登入後複製

演算法(步驟)

以下是執行所需任務所需遵循的演算法/步驟 -。

  • 建立一個變數來儲存輸入集並列印給定的集。

  • 建立另一個變數來儲存輸入清單。

  • #使用any()函數透過遍歷輸入集合並檢查目前元素是否存在於輸入清單中來檢查輸入清單中是否存在任何集合元素。

  • 以布林值形式列印結果。

範例

以下程式使用 any() 函數檢查輸入清單中是否存在任何輸入集元素,如果存在則傳回 True,否則傳回 False –

# input set
inputSet = {4, 8, 1, 3, 5, 7}

# printing the input set
print("Input set:\n", inputSet)

# input list
inputList = [7, 15, 20]

# checking whether any set element is present in the input list using any() function
result = any(i in inputSet for i in inputList)

# printing the output
print("Checking whether any set element present in the input list:", result)
登入後複製

輸出

執行時,上述程式將產生以下輸出 -

Input set:
{1, 3, 4, 5, 7, 8}
Checking whether any set element present in the input list: True
登入後複製
登入後複製

方法2:使用位元&運算子

位元 & 運算子 - “&”是比較數字(二進位)的位元運算子。如果兩個位元均為 1,則它將每個位元設為 1

演算法(步驟)

以下是執行所需任務所需遵循的演算法/步驟 -

  • 使用 set() 函數將給定輸入轉換為集合。

  • 使用& 運算子(如果兩個位元都為1,則每位設為1)檢查輸入清單中是否存在任何集合元素,並使用bool() 函數(傳回給定物件的布林值)

  • 列印結果。

範例

以下程式使用位元 & 運算子檢查輸入清單中是否存在任何輸入集元素,如果存在則傳回 True,否則傳回 False –

# input set
inputSet = {4, 8, 1, 3, 5, 7}

# printing the input set
print("Input set:\n", inputSet)

# input list
inputList = [9, 15, 20]

# Convert the given list to set using the set() function
inputListSet = set(inputList)

# checking whether any set element present in the input list

# using & operator(checks for common element) and converting to boolean
result = bool(inputSet & inputListSet)

# printing the output
print("Checking whether any set element present in the input list:", result)
登入後複製

輸出

執行時,上述程式將產生以下輸出 -

Input set:
{1, 3, 4, 5, 7, 8}
Checking whether any set element present in the input list: False
登入後複製

方法 3:使用 Counter()、filter() 和 lambda 函數

filter() 函數 - 使用確定序列中每個元素是真還是假的函數來過濾指定的序列。

Counter() 函數 - 計算可雜湊物件的子類別。它在調用/調用時隱式創建可迭代的哈希表。

lambda() 函數

lambda 函數是一個小型匿名函數。

lambda 函數可以有無限/任意數量的參數,但只能有一個表達式。

文法

lambda arguments : expression
登入後複製

演算法(步驟)

以下是執行所需任務所需遵循的演算法/步驟 -

  • 使用 import 關鍵字從集合模組匯入 Counter 函數。

  • 使用Counter()函數以字典形式取得所有輸入清單元素的頻率。

  • 使用濾波器函數過濾所有輸入集元素(如果它們存在於上述頻率字典中)。

  • 如果存在任何共同元素,則過濾後的清單的長度將大於 1。

  • 使用 if 條件語句檢查上述條件是否成立並相應地列印。

範例

以下程式使用 Counter()、filter() 和 lambda 函數檢查輸入清單中是否存在任何輸入集元素,如果存在則傳回 True,否則傳回 False –

# importing a Counter function from the collections module
from collections import Counter

# input set
inputSet = {4, 8, 1, 3, 5, 7}

# printing the input set
print("Input set:\n", inputSet)

# input list
inputList = [7, 15, 20, 7]

# getting the frequency of list elements using the Counter() function

# Here it returns frequencies as a dictionary
elements_freq = Counter(inputList)

# Traversing in the input Set using the lambda function

# Checking if the set element exists in the keys of the dictionary

# Filtering all the elements which satisfy the above condition
output = list(filter(lambda k: k in elements_freq.keys(), inputSet))

# Check if there are any filtered elements
if(len(output) > 0):
   output = True

# If no elements are common then the output will be False
else:
   output = False

# printing the output
print("Checking whether any set element present in the input list:", output)
登入後複製

輸出

執行時,上述程式將產生以下輸出 -

Input set:
{1, 3, 4, 5, 7, 8}
Checking whether any set element present in the input list: True
登入後複製
登入後複製

結論

在本文中,我們學習如何使用三種不同的方法來確定集合是否包含清單中的元素。我們也學習如何使用 set() 函數將任何可迭代物件(例如列表、元組或任何可迭代物件)轉換為集合,以及如何使用 & 運算子來尋找這兩個集合共有的元素給予。

以上是Python程式用於測試清單中是否存在任何集合元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板