如何使用带过滤器的列表推导式筛选包含指定字符串的元组集合
完全可以,带过滤器的列表推导式是实现这个需求最简洁的方案之一,通用实现逻辑如下:
通用实现步骤
- 先把所有待处理的嵌套元组整合为一个可迭代的源集合,比如把你所有的
val1、val2这类源数据放到同一个列表/元组里 - 直接通过双层遍历+条件过滤的列表推导式完成筛选,通用写法如下:
# 可自定义修改的参数 sources = (val1, val2) # 此处可填入任意多个待处理的嵌套元组 target_str = "Friday" # 此处填入你要匹配的目标字符串 # 列表推导式实现筛选 result = [item for group in sources for item in group if target_str in item]
逻辑说明
- 第一层遍历
sources里的每一组嵌套元组group - 第二层遍历每个
group里的单个元组元素item - 过滤条件
target_str in item会自动识别元组任意位置是否包含目标字符串,符合要求的元素会直接被加入结果列表
这个写法完全适配你描述的通用场景,不限待处理的嵌套元组数量,也不限单个元组的长度和目标字符串的位置,示例场景下运行后得到的结果和你预期的[('Friday', 23,4), ('Friday', 3,4)]完全一致。
内容的提问来源于stack exchange,提问作者polar. B
相关产品推荐
相关产品推荐

