You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用列表推导式在Python中过滤active=True的元组列表元素

正确的列表推导式实现方法

你的错误原因是:列表中的每个item是元组(格式为(字符串, 字典)),并非带有active属性的类实例。直接使用item.active会试图访问元组第一个元素(字符串)的属性,自然触发AttributeError。

正确写法

直接通过元组索引取到字典,再判断字典中'active'键的值:

# 完整判断写法
filtered_list = [item for item in original_list if item[1]['active'] is True]

# 简化写法(因active本身是布尔值,可直接判断)
filtered_list = [item for item in original_list if item[1]['active']]

示例验证

假设原列表定义为:

original_list = [('1',{'a':'A','b':'B', 'active':True, 'c': 'C'}),('2',{'a':'A','b':'B', 'active':False, 'c': 'C'})]

运行推导式后,filtered_list的结果为:

[('1', {'a': 'A', 'b': 'B', 'active': True, 'c': 'C'})]

内容的提问来源于stack exchange,提问作者anagnam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:45:34