I have two lists like
values = [['bert', '1234', 'xxx', 50], ['ernie', '5678', 'fff', 100]] required = [1, 3]
I want to extract the required elements 1 and 3 from each list contained in values, to create a new list of lists like [['1234', 50], ['5678', 100]].
I was able to solve the problem with a list comprehension:
[[x[y] for y in required] for x in values]
But how can I write the equivalent with explicit for loops?
I tried:
new_list = []
for x in values:
for y in required:
new_list.append(x[y])
but the resulting new_list is a single flat list ['1234', 50, '5678', 100].
Advertisement
Answer
You can make a new array before second looping, and then add x[y] in that array. Add the new array to the new_list after the second looping.
new_list = []
for x in values:
temp_list = []
for y in required:
temp_list.append(x[y])
new_list.append(temp_list)