Python 中過濾範圍長度元組
範圍長度由表示起始點和結束點以及長度的值範圍來定義。在 Python 中,有一些內建函式,如 list()、append()、filter() 和 lambda,可以用來解決基於過濾範圍長度元組的問題。這種型別的陳述通常有助於構建過濾工具的邏輯。
語法
以下語法在示例中使用:
len()
len() 是 Python 中的內建方法,用於返回物件的長度。
append()
Python 中的 append 方法用於在列表末尾新增元素。
filter()
Python 的 filter() 元素用於根據特定條件過濾元素。
lambda
lambda 函式提供了一種使用 lambda 關鍵字宣告簡短匿名函式的快捷方式。lambda 函式的行為與使用 def 關鍵字宣告時相同。
使用生成器表示式
此程式使用生成器表示式,它類似於列表推導式。它使用括號 ‘()’ 而不是方括號 ‘[]’,並以此來過濾範圍長度元組。
示例
在下面的示例中,程式首先定義一個函式 filter_rlt(),它接受三個引數:tuples(透過呼叫函式接收變數 t 的值)、min_len(接收值 1,表示只有一個元組元素)、max_length(接收值 2,表示最多包含兩個元組元素)。
接下來,在 return 語句中,它使用括號表示生成器表示式,並使用 for 迴圈迭代變數 tuples 中的每個元組。為了過濾元組的範圍長度,它將使用比較運算子 ‘<=’。接下來,在變數 t 中建立原始元組列表,並在變數 filter_tuple 中使用函式呼叫來傳遞引數值。最後,使用變數 filter_rlt 列印結果。
# create the function
def filter_rlt(tuples, min_len, max_len):
return tuple(t for t in tuples if min_len <= len(t) <= max_len)
# create the tuple inside the list for filtration
t = [('ATOM', 'C#'), ('C++', 'DOCKER', 'ANACONDA'), ('PYTHON',), ('HTML', 'JAVASCRIPT', 'MERN'), ('MACHINE LEARNING',)]
filter_tuple = filter_rlt(t, 1, 2)
print("THE FILTER TUPLE RANGE LENGTH(Technology & Tools):\n",filter_tuple)
輸出
THE FILTER TUPLE RANGE LENGTH(Technology & Tools):
(('ATOM', 'C#'), ('PYTHON',), ('MACHINE LEARNING',))
使用帶條件表示式的列表推導式
該程式使用方括號的列表推導式,並允許設定 if 語句來過濾範圍長度元組的條件表示式。
示例
在下面的示例中,我們將建立一個遞迴函式,該函式接收一些引數,透過使用 for 迴圈(迭代單個元組列表)和 if 語句(檢查比較以過濾元組的範圍)來處理 return 語句。此過程稱為列表推導式。然後,它將建立原始元組,並將值設定為列表中的多個子元組。函式呼叫用於呼叫函式並將值傳遞給元組範圍長度的過濾,並獲得所需的結果。
def filter_rlt(tuples, min_len, max_len):
return [t for t in tuples if min_len <= len(t) <= max_len]
# create the sub-tuple list
tuples = [('Math', 'English'), ('Zoology'), ('Physics', 'Chemistry', 'Biology'), ('Social Science',), ('Digital Market'), ('Geography', 'Economics', 'Computer')]
# Calling function
filter_tuple = filter_rlt(tuples, 2, 3)
print("The Filter Tuple Range Length(Subjects):\n", filter_tuple)
輸出
The Filter Tuple Range Length(Subjects):
[('Math', 'English'), ('Physics', 'Chemistry', 'Biology'), ('Geography', 'Economics', 'Computer')]
使用 for 迴圈
該程式使用 for 迴圈迭代列表中的多個子元組,並使用 append() 函式過濾範圍長度元組。
示例
在下面的示例中,我們將首先定義一個名為 filter_rlt 的函式,該函式接受三個引數:tuples、min_len 和 max_len,這些引數將有助於設定元組的範圍值。然後在變數 filtered_tuples 中建立一個空列表,該列表將儲存過濾後的範圍元組。現在使用 for 迴圈,其中變數 t 迭代元組,並使用 if 語句檢查範圍比較的條件,然後將過濾後的元組附加到變數 filtered_tuples。接下來,返回同一個變數以獲取新的元組列表。接下來,在變數 ts 中建立原始元組列表,該列表將用於範圍計算。名為 filter_tuple 的新變數將值設定為函式呼叫,以傳遞引數:ts(包含元組列表的值)、2(min_len 的範圍)和 3(max_len 的範圍)。最後,我們使用變數 filter_tuple 列印結果。
def filter_rlt(tuples, min_len, max_len):
filtered_tuples = []
for t in tuples:
if min_len <= len(t) <= max_len:
filtered_tuples.append(t)
return filtered_tuples
# create the tuple list
ts = [('one', 'two', 'three'), ('four', 'five'), ('six',), ('seven', 'eight', 'nine'), ('ten','eleven')]
filter_tuple = filter_rlt(ts, 2, 3)
print("The Filter Tuple Range Length:\n", filter_tuple)
輸出
The Filter Tuple Range Length(Numbers in words):
[('one', 'two', 'three'), ('four', 'five'), ('seven', 'eight', 'nine'), ('ten', 'eleven')]
使用 filter() 和 lambda 函式
該程式使用 Python 中內建函式的巢狀結構,例如 list()、filter() 和 lambda 來過濾範圍長度元組。
示例
在下面的示例中,程式定義了一個名為 filter_rlt 的函式,該函式接受三個引數:tuples ()(從呼叫函式中的變數 t 接收值)、min_len 和 max_len。最小和最大長度用於設定元組列表的範圍。接下來,使用三個不同的內建方法返回函式:list()[建立列表]、filter()[刪除根據範圍不滿足條件的元組] 和 lambda[它接受兩個引數來計算過濾結果]。現在只需在變數 t 中建立原始元組列表。然後在名為 filter_rlt 的函式中設定值範圍 min 和 max,並將其儲存在變數 filter_tuple 中。最後,使用名為 filter_tuple 的變數列印變數。
def filter_rlt(tuples, min_len, max_len):
return list(filter(lambda t: min_len <= len(t) <= max_len, tuples))
# create the sub-tuple list
t = [(1, 2), (12, 13, 14), (15,), (18, 19, 20), (30,)]
# Set the range value in the calling function parameter
filter_tuple = filter_rlt(t, 2, 3)
print("The Filter Tuple Range Length:", filter_tuple)
輸出
The Filter Tuple Range Length: [(1, 2), (12, 13, 14), (18, 19, 20)]
結論
我們討論了基於過濾範圍長度元組的各種解決方案。這種過濾邏輯有助於增強使用者處理資料和解決各種問題的能力。透過過濾,使用者可以提取特定資訊,這些資訊可用於解決現實生活中的業務問題。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP