Get common values out of a list in python

2020-05-04 10:23发布

问题:

I have below list:

a=[{'list1': ['35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52']},
   {'list2': ['1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52']}]

I want to get out the common values from both list1 and list2. I have written

x = set(a[list_2015]).intersection(a[list_2016])

But it throws as error:

TypeError: list indices must be integers or slices, not tuple

I want the output to be:

{35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52}

回答1:

This is one way:

res = set(map(int, a[0]['list1'][0].split(','))) & \
      set(map(int, a[1]['list2'][0].split(',')))

{35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52}

Note & operator is syntactic sugar for set.intersection.