在本文中,我們將學習如何在 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
如果可迭代物件中的任何一項為 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
位元 & 運算子 - “&”是比較數字(二進位)的位元運算子。如果兩個位元均為 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
filter() 函數 - 使用確定序列中每個元素是真還是假的函數來過濾指定的序列。
Counter() 函數 - 計算可雜湊物件的子類別。它在調用/調用時隱式創建可迭代的哈希表。
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中文網其他相關文章!