によって辞書は、私は、この形式で辞書を持っている:印刷行
d = {'type 1':[1,2,3],'type 2':['a','b','c']}
それは各キーのために、私はいつも同じ数の要素を持っているだろうという意味で、対称辞書です。
それが行であるかのようにループへの道があります。だから私は、出力を得る
for row in d.rows():
print row
:
[1]: 1, a
[2]: 2, b
[3]: 3, b
によって辞書は、私は、この形式で辞書を持っている:印刷行
d = {'type 1':[1,2,3],'type 2':['a','b','c']}
それは各キーのために、私はいつも同じ数の要素を持っているだろうという意味で、対称辞書です。
それが行であるかのようにループへの道があります。だから私は、出力を得る
for row in d.rows():
print row
:
[1]: 1, a
[2]: 2, b
[3]: 3, b
あなたは.values()
をzip
ことができますが、順序は、あなたがない限り保証されませんcollections.OrderedDict
(またはfairly recent version of PyPy)を使用しています:
for row in zip(*d.values()):
print(row)
など。私はこれを実行すると、私は
('a', 1)
('b', 2)
('c', 3)
を取得するが、私は同じように簡単に得ている可能性があり:
3210(ハッシュのランダム化が有効になっている場合、私は将来の実行でそれを取得する可能性があります)。
あなたが指定した順序をしたいとあなたはアップフロント知っているキーの有限集合を持っている場合、あなたは直接それらの項目をちょうどジップことができます。
zip(d['type 1'], d['type 2'])
あなたの行がキーでアルファベット順たい場合次の点を考慮する必要があります。
zip(*(v for k, v in sorted(d.iteritems())))
# [(1, 'a', 'd', 4), (2, 'b', 'e', 5), (3, 'c', 'f', 6)]
データセットが巨大な場合は、itertools.izipまたはpandasを考慮してください。
import pandas as pd
df = pd.DataFrame(d)
print df.to_string(index=False)
# type 1 type 2 type 3 type 4
# 1 a d 4
# 2 b e 5
# 3 c f 6
print df.to_csv(index=False, header=False)
# 1,a,d,4
# 2,b,e,5
# 3,c,f,6
も、あなたは、あなたが辞書のエントリとして結果を命じ得ることはありませんOrderedDictに辞書を渡します。ですからタプルのタプルは良いオプションになります。
コードと次の出力項目:
コード(パイソン3):
import collections
t = (('type 1',[1,2,3]),
('type 2',['a','b','c']),
('type 4',[4,5,6]),
('type 3',['d','e','f']))
d = collections.OrderedDict(t)
d_items = list(d.items())
values_list = []
for i in range(len(d_items)):
values_list.append(d_items[i][1])
values_list_length = len(values_list)
single_list_length = len(values_list[0])
for i in range(0,single_list_length):
for j in range(0,values_list_length):
print(values_list[j][i],' ',end='')
print('')
出力:
1 a 4 d
2 b 5 e
3 c 6 f
http://stackoverflow.com/questions/ 15785719/how-to-print-a-dictionary-by-line-in-python –