4 回答

TA貢獻1946條經驗 獲得超3個贊
編輯:
我相信更快的解決方案是使用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': []})

TA貢獻1828條經驗 獲得超3個贊
您可以使用一維字典并在一個字符串中合并 itme 和不好的年份,您寧愿使用二維字典并首先填充空列表,然后通過兩個信息訪問:項目+日期
一個項目然后一年
values = {i: {year: [] for year in years} for i in info}
{'played_games': {'2020': [], '2019': [], '2018': [], '2017': [], '2016': [], '2015': [], '2014': [], '2013': []},
'games_won': {'2020': [], '2019': [], '2018': [], '2017': [], '2016': [], '2015': [], '2014': [], '2013': []},
'efectivity': {'2020': [], '2019': [], '2018': [], '2017': [], '2016': [], '2015': [], '2014': [], '2013': []},
...}
# add data like
values["played_games"]['2014'].append("foo")
一年然后一個項目
values = {year: {i: [] for i in info} for year in years}
{'2020': {'played_games': [], 'games_won': [], 'efectivity': [], 'championship_won': [], 'finals': [], 'semi-finals': [], 'quarterfinals': []},
'2019': {'played_games': [], 'games_won': [], 'efectivity': [], 'championship_won': [], 'finals': [], 'semi-finals': [], 'quarterfinals': []},
'2018': {'played_games': [], 'games_won': [], 'efectivity': [], 'championship_won': [], 'finals': [], 'semi-finals': [], 'quarterfinals': []},
...}
# add data like
values['2014']["played_games"].append("foo")

TA貢獻1808條經驗 獲得超4個贊
您可以創建一個包含 n 個空列表的列表。與n = len(info) * len(years)
。其中 pos 0 的列表是 (info[0],years[0]) ,1 的列表是 (info[0],years[1])....
如果需要,您還可以將名稱存儲在字符串列表中,具有相同的原理(信息和年份的雙循環)。

TA貢獻1966條經驗 獲得超4個贊
使用 2 個循環,你可以試試這個:
years = ["2020", "2019", "2018", "2017", "2016", "2015", "2014", "2013"]
info = ["played_games", "games_won", "efectivity", "championship_won", "finals", "semi-finals", "quarterfinals"]
all_arrays_dict = {}
for x in years:
for y in info:
all_arrays_dict[y+x] = []
print(all_arrays_dict)
這是輸出字典:
{
"played_games2020": [],
"games_won2020": [],
"efectivity2020": [],
"championship_won2020": [],
"finals2020": [],
"semi-finals2020": [],
"quarterfinals2020": [],
"played_games2019": [],
"games_won2019": [],
.
.
.
}
添加回答
舉報