Python 如何使用values()或iteritems()访问表中的值
我创建了一个包含标题行、标题列、列ID和行ID的表(上图是表结构的一个非常简单的示例),并使用特定类的一些方法将表转换为加权平面交叉表和轴交叉表,等等。现在我要找的是测试表中的值是否是浮点值,所以我开发了一个unittest测试套件。我使用了Table.values()或Table.iteritems(),但这两个方法在所有表上迭代,包括头和ID,它们都是字符串,因此测试失败。是否有人有更好的解决方案只迭代表的值,而不考虑表中的标签Python 如何使用values()或iteritems()访问表中的值,python,python-2.7,dictionary,python-unittest,Python,Python 2.7,Dictionary,Python Unittest,我创建了一个包含标题行、标题列、列ID和行ID的表(上图是表结构的一个非常简单的示例),并使用特定类的一些方法将表转换为加权平面交叉表和轴交叉表,等等。现在我要找的是测试表中的值是否是浮点值,所以我开发了一个unittest测试套件。我使用了Table.values()或Table.iteritems(),但这两个方法在所有表上迭代,包括头和ID,它们都是字符串,因此测试失败。是否有人有更好的解决方案只迭代表的值,而不考虑表中的标签 row_ids=['g','p'] col_i
row_ids=['g','p']
col_ids=['r','c']
values = { ('g','r'): 0.75, ('g','c'): 0.25, ('p','r'): 0.5, ('p','c'): 0.5, }
header_row = { 'id':'forme', 'type':'string' }
header_col = { 'id':'taille', 'type': 'string', }
我想要的是只读取值字典中的值,但是对于values()和items(),输出是键和值的元组。这就是测试失败的原因。我想你的意思是你想这样做:
for k, v in values.iteritems():
if k: # if k has a value indicating this is a header:
continue # skip it
if not isinstance(v, float):
print 'bad value: ', k, v
我想你的意思是你想这样做:
for k, v in values.iteritems():
if k: # if k has a value indicating this is a header:
continue # skip it
if not isinstance(v, float):
print 'bad value: ', k, v
我假设您已经创建了自己的
表
类?你能给我们看一下相关的代码吗?一个想法是在这个类中将标题和实际数据分开。是的,我使用了老师创建的一个table类中的方法,标题分别引入一个列表中,该列表的项是另一个包含值的字典的键。这是一段代码:row_id=['g','p']col_id=['r','c']values={'g','r'):3,('g','c'):1,('p','r'):2,('p','c'):2,}header_row={'id':'forme','type':'string'}header\u col={'id':'taille','type':'string',}OP应该在问题中澄清,而不是在注释中。是的,你是对的,我已经编辑了这个问题。谢谢你的评论。你能覆盖表
类的值
或iteritems
方法吗?或者你能访问“内部”吗values
直接变量:objectoftableClass.values.values()
。我假设你已经创建了自己的表
类?你能给我们看一下相关的代码吗?一个想法是将标题和这个类中的实际数据分开。是的,我在我的老师创建的一个表类中使用了这些方法,标题在一个列表中单独介绍,列表中的项目是另一个字典c的键这是一段代码:row_id=['g','p']col_id=['r','c']values={'g','r'):3,('g','c'):1,('p','r'):2,('p','c'):2,}header_row={'id':'forme','type':'string'}header_col{'id':'taille','type':'string',}OP应该在问题中澄清,而不是在注释中。是的,你是对的,我已经编辑了这个问题。谢谢你的评论。你能覆盖表
类的值
或iteritems
方法吗?或者你能访问“内部”吗values
直接变量:objectoftableClass.values.values()
。是否可以为iteritems()提供参数?例如,迭代除行ID和列ID之外的项目只是阅读文档:这是不可能的。我只是尝试了您编辑的代码,它工作正常。确实感谢@tom zychIs可以为iteritems()提供参数?例如,迭代除行ID和列ID之外的项目只是阅读文档:这是不可能的。我刚刚尝试了您编辑的代码,它工作正常。非常感谢@tom zych