如何编写Python函数筛选嵌套列表中字典值总和超67的子列表
问题描述
给定嵌套列表:
groups = [['abc', 'def', 'ghi'], ['jkl', 'mno'], ['mno', 'pqr', 'stu', 'vwx']]
以及映射字典:
respective_numbers = {'abc': 33,'def': 33,'ghi': 32, 'jkl': 11, 'mno': 9,'pqr': 8, 'stu': 6,'vwx': 3}
需实现函数 def enough_numbers(groups, respective_numbers):,要求遍历嵌套列表中的每个子列表,计算子列表内所有元素对应字典值的总和,若总和超过67,则返回该子列表。示例中符合条件的子列表为:
['mno', 'pqr', 'stu', 'vwx']
实现代码
def enough_numbers(groups, respective_numbers): for sublist in groups: total = sum(respective_numbers[item] for item in sublist) if total > 67: return sublist # 若无符合条件的子列表,可根据需求修改返回值,比如返回空列表 return None
代码说明
- 遍历
groups中的每个子列表 - 通过生成器表达式遍历子列表元素,从字典中取值并求和
- 判断总和是否大于67,满足条件则直接返回该子列表
- 若所有子列表都不满足条件,返回
None(可根据实际需求调整返回值)
内容的提问来源于stack exchange,提问作者Gijs van Mierlo
相关产品推荐
相关产品推荐

