在python中处理表数据

时间:2015-03-11 07:26:27

标签: python python-2.7 python-3.x

我想收集数据并按照下面的说明进行表示,但不确定要使用哪种数据类型,如果是c,多维数组将完成这项工作。

                   Box 1  Box 2   Box 3     
Red                 5       8       3
Yellow              3       7       2 
Blue                5       4       9  

未预定义框数和颜色数。我通过阅读文件box1,box2 .....来创建它。

3 个答案:

答案 0 :(得分:2)

您可以使用dictionary {colorlist of box count}。

e.g。

>>> colors = {}
>>> colors["red"] = [1,2,3] #you can dynamically add to list while reading files.
>>> colors["yellow"] = [0,2,4]
>>> colors 
{'yellow': [0, 2, 4], 'red': [1, 2, 3]}

然后您可以根据需要迭代字典并打印数据。

答案 1 :(得分:2)

@Heisenberg建议使用未排序的dict解决方案。但如果需要添加项目的顺序,您可以使用下一个解决方案:

from collections import OrderedDict

class Colors(OrderedDict):
    """Store colors in depend from added order"""
    def __setitem__(self, color, value):
        if color in self:
            del self[color]
        OrderedDict.__setitem__(self, color, value)
colors_table = Colors()
colors_table["red"] = [1,2,3]
colors_table["yellow"] = [0,2,4]
colors_table["blue"] = [2,3,4]
print colors_table # print Colors([('red', [1, 2, 3]), ('yellow', [0, 2, 4]), ('blue', [2, 3, 4])])

答案 2 :(得分:0)

你也可以在python中使用多维数组,但方式略有不同。这里将是一个数组数组。因此,您的数据结构将类似于:

matrix = [
    ['Color', 'Box1', 'Box2', 'Box3'],
    ['Red', 5, 8, 3],
    ['Yellow', 3, 7, 2],
    ['Blue', 5, 4, 9]
]