Removing duplicates from list of dicts is as simple as set(list) but i have got stuck with this specific task.
I need to filter a list of dicts only by some keys and keep only the first elements
JavaScript
x
33
33
1
flights = [
2
{
3
'dep_code': 'LON',
4
'arr_code': 'PAR',
5
'airline': 'BA',
6
'date': '2022-07-07'
7
},
8
{
9
'dep_code': 'LON',
10
'arr_code': 'PAR',
11
'airline': 'BA',
12
'date': '2022-08-07'
13
},
14
{
15
'dep_code': 'LON',
16
'arr_code': 'PAR',
17
'airline': 'BA',
18
'date': '2022-09-07'
19
},
20
{
21
'dep_code': 'LON',
22
'arr_code': 'BRU',
23
'airline': 'BA',
24
'date': '2022-10-07'
25
},
26
{
27
'dep_code': 'LON',
28
'arr_code': 'BRU',
29
'airline': 'BA',
30
'date': '2022-11-07'
31
},
32
]
33
I need to get this very result (keep only first elements with same ‘dep_code’ and ‘arr_code’)
JavaScript
1
15
15
1
flights = [
2
{
3
'dep_code': 'LON',
4
'arr_code': 'PAR',
5
'airline': 'BA',
6
'date': '2022-07-07'
7
},
8
{
9
'dep_code': 'LON',
10
'arr_code': 'BRU',
11
'airline': 'BA',
12
'date': '2022-10-07'
13
},
14
]
15
Thanks for your time!
Advertisement
Answer
You need to save all found data in a list.
JavaScript
1
8
1
found = list()
2
result = list()
3
for d in flights:
4
if not [d['dep_code'],d['arr_code']] in found:
5
result.append(d)
6
found.append([d['dep_code'],d['arr_code']])
7
print(result)
8