Reputation: 1235
I have three lists and I want to find the strings that occurs in every list. How can I do that in smart and pythonic way?
list_a = ['KOMMUN', 'PERIOD', 'ALÖS', 'LAL_12', 'LAL_24', 'AK_TOT', 'PERIOD_Q',
'andel_lal12_alös', 'andel_lal12_ak', 'andel_lal24_alös',
'andel_lal24_ak', 'LAN', 'geo']
list_b=[['geo', 'PERIOD', 'ALÖS', 'LAL_12', 'LAL_24', 'AK_TOT', 'PERIOD_Q',
'andel_lal12_alös', 'andel_lal12_ak', 'andel_lal24_alös',
'andel_lal24_ak', 'LAN_namn', 'ROW_REGION']]
list_c= ['geo', 'PERIOD', 'ALÖS', 'LAL_12', 'LAL_24', 'AK_TOT', 'PERIOD_Q',
'andel_lal12_alös', 'andel_lal12_ak', 'andel_lal24_alös',
'andel_lal24_ak']
list_final=['geo', 'PERIOD', 'ALÖS', 'LAL_12', 'LAL_24', 'AK_TOT', 'PERIOD_Q',
'andel_lal12_alös', 'andel_lal12_ak', 'andel_lal24_alös',
'andel_lal24_ak']
Upvotes: 0
Views: 33
Reputation:
You can use set.intersection
:
final_list = list(set(list_a) & set(list_b[0]) & set(list_c))
Output:
['PERIOD', 'ALÖS', 'LAL_24', 'geo', 'andel_lal12_ak', 'LAL_12', 'andel_lal24_alös', 'AK_TOT', 'PERIOD_Q', 'andel_lal12_alös', 'andel_lal24_ak']
Upvotes: 3