Reputation: 83
I have a lot of dictionaries that look like this:
data_sample = {'query_result': {'imdbid': 50083, 'file name': '12.Angry.Men.1957.Criterion.Collection.720p.BluRay.x264-WiKi.fre.srt', 'IDSubtitleFile': '1952985556'},
'movie directory': 'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'}
Basically:
data_collection = [data_sample] * 10
My desired output is a tuple which consists of:
(query_result["IDSubtitleFile"], movie_directory)
How would I go about creating the desired output using list comprehension? I know how I'd do it using for loops, but I'm struggling to manage it using list comprehension. The only idea I have is this but it throws an error and it doesn't make any sense actually:
[[(value["IDSubtitleFile"], value) for value in data_sample.values()] for data_sample in data_collection]
After writing this out I'm thinking it might be wiser not to use list comprehensions at all for this case.
Upvotes: 1
Views: 37
Reputation: 42756
This comprehension will do:
results = [
(d["query_result"]["IDSubtitleFile"], d["movie directory"])
for d in data_collection
]
Result:
>>> pprint([(d["query_result"]["IDSubtitleFile"], d["movie directory"]) for d in data_collection])
[('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem'),
('1952985556',
'C:\\...\\Movies\\12 Angry Men 1957 1080p BluRay x264 AAC - Ozlem')]
Upvotes: 2