首页 > 解决方案 > 使用另一个列表的元素创建空列表

问题描述

我有一份年份清单:

years = ["2020", "2019", "2018", "2017", "2016", "2015", "2014", "2013"]

以及我想从网络抓取中获取的信息列表:

info = ["played_games", "games_won", "efectivity", "championship_won", "finals", "semi-finals", "quarterfinals"]

我需要迭代几年,这样我就可以用 info + 对应年份中的元素名称制作空列表,这样我就可以稍后附加信息,即:

played_games2020 = []
games_won2020 = []
efectivity2020 = []
etc
played_games2019 = []
games_won2019 = []
efectivity2019 = []
etc

任何帮助将非常感激!问候

标签: pythonpython-3.xlistweb-scraping

解决方案


编辑:

我相信更快的解决方案是使用dict comprehensionwith itertools.product。解决方案只是一行代码:

import itertools
example_dict = {x:[] for x in [x[0]+x[1] for x in itertools.product(info,years)]}

输出与以下解决方案相同。

正如 han solo 在他们的评论中建议的那样,这似乎更合适defaultdict(list)。基本上解决方案是:

from collections import defaultdict
example_dict = defaultdict(list)
for i in years:
   for j in info:
       example_dict[j+i]
print(example_dict)

输出:

defaultdict(list,
            {'championship_won2013': [],
             'championship_won2014': [],
             'championship_won2015': [],
             ...
             'semi-finals2018': [],
             'semi-finals2019': [],
             'semi-finals2020': []})

推荐阅读