Python如何筛选字典中值为包含多个元素的列表对应的键
Python实现筛选字典中值长度大于1的键
核心实现思路
遍历字典的键值对,判断每个值的元素数量是否大于1,保留符合条件的键即可。
代码示例
基础写法(适用于所有值均为列表/序列的场景)
word_freq = {'is': [1, 3, 4, 8, 10], 'no': [1], 'yes': [1, 2]} # 列表推导式筛选符合条件的键 result = [key for key, val in word_freq.items() if len(val) > 1] print(result)
运行输出:
['is', 'yes']
兼容写法(值类型不确定的场景)
如果字典中可能存在整数、字符串等非序列类型的值,可添加类型校验避免调用len()时报错:
result = [ key for key, val in word_freq.items() if hasattr(val, '__len__') and len(val) > 1 ]
逻辑说明
- 调用字典的
items()方法可以同时遍历所有键和对应的值 len(val) > 1直接判断值的元素数量是否满足多元素要求- 最终结果以列表形式返回所有符合要求的键,可按需直接使用或者转换为其他格式
内容的提问来源于stack exchange,提问作者user16354099
相关产品推荐
相关产品推荐

