Siifan
Siifan

Reputation: 13

How can iterate throught a dictionary in a list in python

This is an output from traversing through different folders in a directory:

r= [{'s.data': [22, 10, 21, 2, 3, 3, 4, 4, 4], 'd.data': [1, 5, 3,67,8,4, 9, 0, 2], 'q.data': [2, 3, 4, 5, 6, 3, 4, 2, 32], 't.data': [32, 21, 9, 2, 13, 5, 4, 9, 7], 'k.data': [3, 7, 2, 5, 68, 90, 23, 11, 22]}, {'s.data': [9, 8, 7, 6, 5, 4, 3, 2, 1], 'd.data': [2, 6, 3, 8, 9, 0, 3, 2, 5], 'q.data': [1, 2, 3, 4, 5, 6, 7, 8, 9], 't.data': [0, 8, 9, 7, 5, 6, 4, 2, 3], 'k.data': [4, 3, 2, 6, 7, 8, 9, 0, 1]}, {'s.data': [4, 3, 6, 4, 7, 2, 8, 1, 9], 'd.data': [6, 4, 3, 5, 6, 7, 8, 9, 0], 'q.data': [23, 2, 3, 6, 8, 4, 5, 0, 8], 't.data': [2, 1, 3, 4, 5, 11, 2, 6, 7], 'k.data': [1, 0, 2, 9, 3, 8, 4, 7, 4]}, {'s.data': [1, 9, 7, 0, 2, 4, 2, 3, 5], 'd.data': [4, 3, 7, 9, 2, 3, 0, 9, 10], 'q.data': [0, 23, 4, 2, 4, 6, 8, 3, 0], 't.data': [4, 1, 7, 4, 0, 8, 9, 9, 0], 'k.data': [9, 2, 6, 1, 2, 3, 5, 6, 9]}, {'s.data': [22, 10, 21, 2, 3, 3, 4, 4, 4], 'd.data': [5, 7, 4, 5, 8, 9, 0, 2, 3], 'q.data': [3, 2, 4, 5, 6, 7, 8, 9, 1], 't.data': [2, 3, 1, 4, 5, 6, 7, 8, 0], 'k.data': [3, 2, 5, 6, 7, 4, 5, 6, 2]}]

How can I print only the values like the following without the keys as follows:

[[22, 10, 21, 2, 3, 3, 4, 4, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1], [4, 3, 6, 4, 7, 2, 8, 1, 9], [1, 9, 7, 0, 2, 4, 2, 3, 5]]

Any help will be appreciated!

Upvotes: 1

Views: 51

Answers (2)

h7r
h7r

Reputation: 5074

Something like this should do the trick, if you don't need a specific ordering across the s.data, k.data, etc keys.

 print [x.values() for x in r]

Alternativelym if you care only about s.data or any other specific key, you can do

k = 's.data'
print [x[k] for x in r]

Upvotes: 1

PeterE
PeterE

Reputation: 5855

You apparently want only the values for the key 's.data' in each of the dictionaries. You can do that as follows:

[d['s.data'] for d in r]

Upvotes: 0

Related Questions