Python 2.7技术问询:如何筛选嵌套列表中长度非指定值的子列表
找出嵌套列表中长度不符合要求的子列表(Python 2.7)
嘿,我来帮你搞定这个问题!在Python 2.7里,要筛选出嵌套列表中长度不等于指定值的子列表,用列表推导式就能轻松实现,简洁又高效。
直接实现方案
假设你要找长度不等于3的子列表,直接用一行列表推导式就能完成:
# 你的原始嵌套列表(注意修正字符串引号的问题) nested_list = [['abc', 'orange', 'NYC'], ['def', 'apple', 'NYC', 'USA'], ['xyz', 'california'], ['qwe', 'mango', 'USA']] # 指定目标长度 target_length = 3 # 筛选长度不符合要求的子列表 result = [sublist for sublist in nested_list if len(sublist) != target_length] # 输出结果 print(result)
运行这段代码后,会输出你预期的结果:
[['def', 'apple', 'NYC', 'USA'], ['xyz', 'california']]
代码解释
- 我们用列表推导式遍历外层列表的每一个子列表
sublist - 通过
len(sublist) != target_length判断子列表的长度是否不等于指定的目标值 - 所有符合条件的子列表会被自动收集到
result列表中
封装成函数(复用更方便)
如果需要多次处理不同的嵌套列表或者目标长度,把逻辑封装成函数会更实用:
def get_sublists_invalid_length(nested_list, target_length): """返回嵌套列表中长度不等于target_length的子列表""" return [sublist for sublist in nested_list if len(sublist) != target_length] # 使用示例 my_nested_list = [['abc', 'orange', 'NYC'], ['def', 'apple', 'NYC', 'USA'], ['xyz', 'california'], ['qwe', 'mango', 'USA']] print(get_sublists_invalid_length(my_nested_list, 3))
这样以后无论你要找长度不等于5、7还是其他值的子列表,只需要调用这个函数并传入对应参数即可。
小提醒:你提供的示例输入里有字符串引号缺失的问题(比如['abc,'orange,'NYC']),实际写代码的时候要确保每个字符串都用单引号或双引号正确包裹,避免语法错误哦!
内容的提问来源于stack exchange,提问作者warner
相关产品推荐
相关产品推荐

