Reputation: 99
I have an object and I want to extract some elements from object to made a list.
I have this
[["Test_1",
{"name": "Test_level_1", "value": 10},
{"name": "Test_level_1 again", "value": 15}],
["Test_2",
{"name": "Test_level_2", "value": 1},
{"name": "Test_level_2 again", "value": 5}]]
And I trying to have this
["Test_level_1",
"Test_level_1 again",
"Test_level_2",
"Test_level_2 again"]
What is the way to do it?
Upvotes: 1
Views: 2456
Reputation: 36680
A list comprehension will cover this quite nicely.
data = [
["Test_1",
{"name": "Test_level_1", "value": 10},
{"name": "Test_level_1 again", "value": 15}],
["Test_2",
{"name": "Test_level_2", "value": 1},
{"name": "Test_level_2 again", "value": 5}]
]
desired_data = [
item['name']
for sublist in data
for item in sublist
if isinstance(item, dict)
]
Result:
['Test_level_1', 'Test_level_1 again', 'Test_level_2', 'Test_level_2 again']
Upvotes: 4
Reputation: 1031
arr = [
["Test_1",
{"name": "Test_level_1",
"value": 10},
{"name": "Test_level_1 again",
"value": 15}],
["Test_2",
{"name": "Test_level_2",
"value": 1},
{"name": "Test_level_2 again",
"value": 5}]
]
ans = [item["name"] for subarr in arr
for index, item in enumerate(subarr)
if index!=0]
print(ans)
Upvotes: -2
Reputation: 54168
Iterate over your list, with a nice unpacking and keep the value from "name"
values = [["Test_1", {"name":"Test_level_1", "value":10}, {"name":"Test_level_1 again", "value":15}],
["Test_2", {"name":"Test_level_2", "value":1}, {"name":"Test_level_2 again", "value":5}]]
result = []
for first, *others in values:
for other in others:
result.append(other["name"])
Upvotes: 0