Python 过滤范围长度元组
范围长度通过表示跟随起点和终点以及长度的值范围来定义。在Python中,有一些内置函数,如list(),append(),filter()和lambda,可以用来解决基于过滤范围长度元组的问题。这种类型的问题陈述通常有助于构建过滤工具的逻辑。
语法
以下语法在示例中使用 –
len()
len() 是 Python 中的内置方法,用于返回对象的长度。
append()
在Python中,append(附加)方法用于将元素添加到列表的末尾。
filter()
Python的filter()元素用于根据特定条件筛选元素。
lambda
lambda 函数提供了一种使用lambda关键字声明简洁匿名函数的快捷方式。当使用def关键字声明时,lambda函数的行为与之相似。
使用生成器表达式
该程序使用了类似于列表推导的生成器表达式。它使用圆括号‘ () ’代替方括号‘ [] ’,并且借助此功能,它将过滤范围长度的元组。
示例
在以下示例中,通过定义一个名为 filter_rlt() 的函数来启动程序。该函数接受三个参数-元组(通过调用函数接收变量 t 的值)、 min_len (接收 1 的值,表示仅一个元组元素)、 max_length (接收 2 的值,表示最多包含两个元组元素)。
接下来,在返回语句中使用圆括号显示生成器表达式,并使用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语句(检查比较以过滤元组的范围)在返回语句上进行处理。这个过程称为列表推导。然后,它将创建原始元组,将其值设置为列表内的多个子元组。函数调用用于调用函数并传递值以处理元组长度的过滤,并获得所需的结果。
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的函数,接受三个参数-元组、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来过滤range长度的元组。
示例
在下面的示例中,程序定义了一个名为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)]
结论
我们讨论了基于过滤范围长度元组的解决方案的各种方法。这种过滤逻辑可以帮助增强用户处理数据和解决各种问题挑战的能力。通过过滤,用户可以提取特定的信息,并且可以用来解决现实生活中的业务问题。