【问题标题】:How to add values to a dictionary from a list with same key values in Python? [duplicate]如何从 Python 中具有相同键值的列表中将值添加到字典中? [复制]
【发布时间】:2021-12-06 19:21:49
【问题描述】:

我有一个列表,它本身就有这样的子列表:

[['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)']]

我希望第 7 个索引值(例如“ZOSTER (SHINGRIX)”之类的疫苗名称)成为新字典 d={} 的键,并且这些键的值应该是具有疫苗 ID 的列表(第 0 个索引)相同的键。

例如:

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

有人可以帮忙提供一个简单的python解决方案而不导入任何东西吗?

【问题讨论】:

  • 对于简短版本,请尝试d = defaultdict(list); *map(lambda v: d[v[7]].append(v[0]), my_list),

标签: python list dictionary


【解决方案1】:
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]]

返回以下字典:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 2020-05-06
    相关资源
    最近更新 更多