使用Truths类生成真值表:如何提取指定行并解决属性错误?
解决Truths真值表提取指定行的问题
Truths类并没有对外暴露rows属性,这是你遇到AttributeError的原因。要提取表格行,有以下几种可靠方法:
1. 访问内部行存储属性_rows
Truths的行数据实际存在私有属性_rows中,直接访问即可获取所有行的列表:
from truths import Truths # 示例:创建包含变量p、q和表达式p∧q的真值表 t = Truths(['p', 'q'], ['p and q']) # 获取全部行数据,每行是(变量值元组, 表达式结果)的结构 all_rows = t._rows print(all_rows)
2. 筛选表达式结果符合要求的行
如果要提取表达式计算结果为True的行,直接遍历_rows过滤即可:
# 筛选表达式结果为True的行 valid_rows = [row for row in t._rows if row[-1] is True] print(valid_rows)
3. 使用官方提供的as_list()方法
Truths内置了as_list()方法,返回结构化的列表(首元素是表头,后续是行数据),更便于处理:
# 获取结构化的真值表数据 table_data = t.as_list() headers = table_data[0] # 表头:['p', 'q', 'p and q'] data_rows = table_data[1:] # 所有行数据 # 提取指定行,比如索引为1的第二行 target_row = data_rows[1] print(target_row)
以上方法都能帮你跳过仅打印表格的限制,直接操作真值表的行数据。
内容的提问来源于stack exchange,提问作者Sena j
相关产品推荐
相关产品推荐

