Reputation: 2896
I have 2 arrays as below:
array 1:
[
{"name": "A", "class" : "1"},
{"name": "B", "class" : "2"},
{"name": "C", "class" : "3"}
]
array 2:
[ "A","B"]
I wanna merge 2 arrays, and my expected result:
[
{"name": "A", "class" : "1"},
{"name": "B", "class" : "2"}
]
Any suggestion is appreciated
What I found so far:
Upvotes: 1
Views: 207
Reputation: 19885
Just use a list
comprehension:
first = [
{"name": "A", "class" : "1"},
{"name": "B", "class" : "2"},
{"name": "C", "class" : "3"}
]
second = ['A', 'B']
result = [d for d in first if d['name'] in second]
print(result)
Output:
[{'name': 'A', 'class': '1'}, {'name': 'B', 'class': '2'}]
In the case raised in the comments:
from operator import itemgetter
first = [
{"name": "A", "class" : "1"},
{"name": "B", "class" : "2"},
{"name": "C", "class" : "3"}
]
second = [
{"name": "A"},
{"name": "B"}
]
result = [d for d in first if d['name'] in map(itemgetter('name'), second)]
print(result)
Output:
[{'name': 'A', 'class': '1'}, {'name': 'B', 'class': '2'}]
Upvotes: 5