In the following code snippet:
from collections import OrderedDict data = [OrderedDict([('sale', '143017'), ('profit', '345'), ('quantity', '45')]), OrderedDict([('sale', '243215'), ('profit', '400'), ('quantity', '105')]), OrderedDict([('sale', '98342'), ('profit', '100'), ('quantity', '55')])] sale_list = [] for i in range(2): sale_list.append(list(data[i].items())[0][1]) print(sale_list)
The output is:
['143017', '243215']
I wonder how to change the for loop to a list comprehension?
Advertisement
Answer
from collections import OrderedDict data = [OrderedDict([('sale', '143017'), ('profit', '345'), ('quantity', '45')]), OrderedDict([('sale', '243215'), ('profit', '400'), ('quantity', '105')]), OrderedDict([('sale', '98342'), ('profit', '100'), ('quantity', '55')])] sale_list = [ list(data[i].items())[0][1] for i in range(2) ] print(sale_list)
This should work, here is a basic example
h_letters = [] for letter in 'human': h_letters.append(letter) print(h_letters)
Would instead be
h_letters = [ letter for letter in 'human' ] print( h_letters)