-
Notifications
You must be signed in to change notification settings - Fork 1
/
Printing Dictionaries
97 lines (77 loc) · 2.32 KB
/
Printing Dictionaries
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
>>> d = {'value1' : ['1', '2', '3'], 'value2' : ['4','5','6'], 'value3': ['7','8','9']}
>>> d
{'value3': ['7', '8', '9'], 'value2': ['4', '5', '6'], 'value1': ['1', '2', '3']}
## Printing key and values separately.
>>> d.keys()
['value3', 'value2', 'value1']
>>> d.values()
[['7', '8', '9'], ['4', '5', '6'], ['1', '2', '3']]
## Printing key and values in simple form
>>> for key,value in d.items():
... print key, value
...
...
value3 ['7', '8', '9']
value2 ['4', '5', '6']
value1 ['1', '2', '3']
## Printing key and value in sorted way - Here sorting using key
>>> for key in sorted(d.keys()):
... print key, d[key]
...
...
value1 ['1', '2', '3']
value2 ['4', '5', '6']
value3 ['7', '8', '9']
## Printing only values
>>> for value in d.keys():
... print d[value]
...
...
['7', '8', '9']
['4', '5', '6']
['1', '2', '3']
## Zipping the values of dictionary
>>> zip(d.values())
[(['7', '8', '9'],), (['4', '5', '6'],), (['1', '2', '3'],)]
>>> zip(*(d.values()))
[('7', '4', '1'), ('8', '5', '2'), ('9', '6', '3')]
In immediate above it's taking the first value of each key.
Basically we can have output like below which will use the keys as columns and values as rows.
>>> for row in zip(*([k] + d[k] for k in sorted(d))):
... print(row)
...
('value1', 'value2', 'value3')
('1', '4', '7')
('2', '5', '8')
('3', '6', '9')
## Printing keys and column and values as row in csv format.
>>> with open("test.csv", "w") as f:
... f.write(",".join(d.keys()) + "\n")
... for row in zip(*d.values()):
... f.write(",".join(str(n) for n in row) + "\n")
...
... f.close()
...
Output like below :
cat /home/vaggarwa/test.csv
value3,value2,value1
7,4,1
8,5,2
9,6,3
## Adding one more dictionary example.
>>> dict1
{1: ['Spices', 37.0], 2: ['Other stuff', 21.0], 3: ['Tea', 43.0], 5: ['Fruit', 6.0], 6: ['Textiles', 39.0], 10:
['Contraband', 992.0]}
>>> print "{:<8} {:<15} {:<10}".format('Key','Label','Number')
Key Label Number
>>> for k, v in dict1.iteritems():
... label, num = v
... print "{:<8} {:<15} {:<10}".format(k, label, num)
...
...
1 Spices 37.0
2 Other stuff 21.0
3 Tea 43.0
5 Fruit 6.0
6 Textiles 39.0
10 Contraband 992.0