如何用Python基于多个关联列表生成符合预期结构的字典列表
你的原代码没有处理list_leagues中的嵌套列表,直接把国家和对应的联赛集合配对,没有拆分多个联赛生成独立条目,修改方案如下:
修改后代码(易读版本)
list_countries=['italy','france'] list_leagues=[['serie-a','serie-b'], 'ligue-1'] keys=['Country','League'] spam = [] for country, leagues in zip(list_countries, list_leagues): # 统一转为列表格式,避免单个字符串被遍历为单个字符 league_items = leagues if isinstance(leagues, list) else [leagues] for league in league_items: spam.append(dict(zip(keys, [country, league]))) print(spam)
运行输出
[{'Country': 'italy', 'League': 'serie-a'}, {'Country': 'italy', 'League': 'serie-b'}, {'Country': 'france', 'League': 'ligue-1'}]
如果你偏好更简洁的写法,也可以用嵌套列表推导式实现:
spam = [dict(zip(keys, [country, league])) for country, leagues in zip(list_countries, list_leagues) for league in (leagues if isinstance(leagues, list) else [leagues])]
内容的提问来源于stack exchange,提问作者luka
相关产品推荐
相关产品推荐

