0

I have a list which has sub lists in itself like this:

[['0794156', 'FLU4', 'GLAXOSMITHKLINE BIOLOGICALS', 'JZ3B7', 'UNK', 'IM', 'LA', 'INFLUENZA (SEASONAL) (FLUARIX QUADRIVALENT)'], ['0794157', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', 'UNK', '', '', 'ZOSTER (SHINGRIX)'], ['0794158', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', 'UNK', '', '', 'ZOSTER (SHINGRIX)'], ['0794160', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', '1', 'IM', 'RA', 'ZOSTER (SHINGRIX)']]

I want the 7th index values (vaccine names like "ZOSTER (SHINGRIX)" for example) to be keys for a new dictionary d={} and values for those keys should a list of vaccine IDs (0th index) which have same keys.

For example:

{'INFLUENZA (SEASONAL) (FLUARIX QUADRIVALENT)':['0794156'],'ZOSTER (SHINGRIX)' : ['0794157','0794160']}

Can someone please help and give a simple python solution without importing anything?

Dani Mesejo
  • 61,499
  • 6
  • 49
  • 76

1 Answers1

0
lst = [['0794156', 'FLU4', 'GLAXOSMITHKLINE BIOLOGICALS', 'JZ3B7', 'UNK', 'IM', 'LA', 'INFLUENZA (SEASONAL) (FLUARIX QUADRIVALENT)'], ['0794157', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', 'UNK', '', '', 'ZOSTER (SHINGRIX)'], ['0794158', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', 'UNK', '', '', 'ZOSTER (SHINGRIX)'], ['0794160', 'VARZOS', 'GLAXOSMITHKLINE BIOLOGICALS', '', '1', 'IM', 'RA', 'ZOSTER (SHINGRIX)']]

dict = {}
for i in lst:
    if i[7] not in dict.keys():
        dict[i[7]] = [i[0]]
    else:
       dict[i[7]] = dict.get(i[7]) + [i[0]]

Returns the following dictionary:

for k,v in dict.items():
    print(k, ":", v)

INFLUENZA (SEASONAL) (FLUARIX QUADRIVALENT) : ['0794156']
ZOSTER (SHINGRIX) : ['0794157', '0794158', '0794160']
denisafonin
  • 1,116
  • 1
  • 7
  • 16