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)]

结论

我们讨论了基于过滤范围长度元组的各种解决方案。这种过滤逻辑有助于增强用户处理数据和解决各种问题的能力。通过过滤,用户可以提取特定信息,这些信息可用于解决现实生活中的业务问题。

更新于:2023年7月17日

437 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告