遍历字典并以表格形式返回结果
我想把一个字典的内容打印成表格,这个字典是这样定义的:
d = {"date": tuple(date),"open":tuple(open),"close":tuple(close),"min":tuple(min),"max":tuple(max),"gain":tuple(gain),"loss":tuple(loss),"avg_gain":tuple(avg_gain),"avg_loss":tuple(avg_loss)}
我想逐行遍历这个字典,在命令行中打印出来,第一行是字典的键,接下来的每一行是元组的内容,比如日期的元组、开盘价的元组等等。
3 个回答
0
你可以使用Pandas这个工具(http://pandas.pydata.org/pandas-docs/stable/dsintro.html)。只要这些元组(也就是一组数据)长度相同,你就可以这样做:
>>> import pandas
>>> d={"Green":(1,2,3,4), "Blue":(12,13,14,15), "Red":(1,3,5,7)}
>>> pandas.DataFrame(d)
Blue Green Red
0 12 1 1
1 13 2 3
2 14 3 5
3 15 4 7
2
除非我理解错了:
for k in d:
print k, '\t',
for v in d.values():
print v, '\t',
补充:也许有更好的方法:
print '\t'.join(d)
print '\t'.join(d.values())
举个例子:
d = {'apple':'green', 'lemon':'yellow', 'cherry':'red'}
输出结果:
cherry lemon apple
red yellow green
6
可以把键加到元组的前面,然后用zip(*)来转置结果。
>>> d={"A":(1.0,2.0,3.0), "B":(4.0,5.0,6.0), "C":(7.0,8.0,9.0)}
>>> for row in zip(*([k]+map(str,v) for k,v in sorted(d.items()))):
... print "\t".join(row)
...
A B C
1.0 4.0 7.0
2.0 5.0 8.0
3.0 6.0 9.0