Python统计嵌套列表中含指定子串元素的出现次数
list.count() 仅支持全值精确匹配,只有元素和传入参数完全相等时才会计数,无法识别Qwerty 1这类仅包含目标子串的元素。另外你的子列表中混有整数类型值,做子串判断前需要先做类型校验,避免触发类型错误。
实现代码
my_list=[['xyz','abc','Qwerty 1','Qwerty 2'],[],['1','2','Qwerty 1','Qwerty 2',1,4,'Qwerty 3',3],['1','QQQ','Quit','Qual','Qwerty 1']] count_list = [] for sub_list in my_list: current_count = 0 for item in sub_list: # 先判断元素为字符串类型,再检查是否包含目标子串 if isinstance(item, str) and 'Qwerty' in item: current_count += 1 count_list.append([current_count]) print(count_list)
运行输出和预期结果完全一致:
[[2], [], [3], [1]]
如果偏好精简写法,也可以直接用嵌套列表推导式实现:
count_list = [[sum(1 for item in sub if isinstance(item, str) and 'Qwerty' in item)] for sub in my_list]
内容的提问来源于stack exchange,提问作者Alan Jones
相关产品推荐
相关产品推荐

