如何使用 values() 或 iteritems() 访问 table 中的值
How can I have access to values in a table with values() or iteritems()
我创建了一个包含header行、header列、列id和行id的table(上图是table的一个非常简单的例子结构),并使用特定 class 的一些方法将 table 转换为加权平面 cross-tab 和枢轴交叉表等。现在我正在寻找的是测试是否table 中的值是 float ,所以我开发了一个 unittest 测试套件。我使用了 Table.values() 或 Table.iteritems(),但这两种方法遍历了所有 Table,包括 headers 和 ids,它们都是字符串,因此测试失败。有没有人有更好的解决方案来只迭代 table 的值而不考虑 table 中的标签?
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
我创建了一个包含header行、header列、列id和行id的table(上图是table的一个非常简单的例子结构),并使用特定 class 的一些方法将 table 转换为加权平面 cross-tab 和枢轴交叉表等。现在我正在寻找的是测试是否table 中的值是 float ,所以我开发了一个 unittest 测试套件。我使用了 Table.values() 或 Table.iteritems(),但这两种方法遍历了所有 Table,包括 headers 和 ids,它们都是字符串,因此测试失败。有没有人有更好的解决方案来只迭代 table 的值而不考虑 table 中的标签?
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