Приносим извинения за избыточность, пытался выполнить эту работу в течение 3 дней.
Я не могу понять, как сохранить новый словарь внутри моего вложенного словаря.
for team, roster in team_roster.items():
stats['rp'][team] = {}
for player in roster:
if player in rp_year_STD[1]:
stats['rp'][team] = {stat_type: stat for stat_type in p_stat_type for stat_list in rp_year_STD\
for stat in stat_list if stat_list[0] == stat_type}
Пробовал это делает то же самое (1 повторяющийся словарь для каждой команды):
for team, roster in team_roster.items():
stats['rp'][team] = {}
for player in roster:
if player in rp_year_STD[1]:
for stat_type in p_stat_type:
for stat_list in rp_year_STD:
if stat_list[0] == stat_type:
for stat in stat_list:
stats['rp'][team][stat_type] = stat
Команда - это строковый ключ в отдельном словаре (team_roster, показанный ниже) roster - это список строк / имен игроков для каждой команды. Игрок является строкой в списке строк (ростере). rp_year_STD - это список списков. rp_year_STD 1 - это список строк / имен игроков. p_stat_type - это список строк, который проверяет ключи в результирующем словаре (rp_year_STD - это список списков, составленных из электронной таблицы, заголовок каждого столбца потенциально является ключом в результирующем словаре).
Я понимаю, что Я создаю 1 словарь с этим пониманием словаря.
Я хочу создать новый словарь для каждого игрока, включенного в список и rp_year_STD, и сохранить его в соответствующем командном словаре, но я просто создаю 1 идентичный словарь игрока (который, конечно, состоит из пар ключ / значение из последней записи в rp_year_STD или строки в электронной таблице, из которой взяты данные) для каждого командного словаря.
Извините, если это не имеет смысла , искренне признателен за всю информацию, размещенную здесь. Спасибо.
Вот что такое rp_year_STD, каждый столбец представляет собой список в списке, а rp_year_STD 1 представляет собой список строк / имен игроков.
Вот список ключей, которые я сравниваю с индексом заголовка столбца / [0] каждого списка. Я не хочу, чтобы каждый столбец / элемент / значение списка находился в результирующем словаре, поэтому я проверяю его с помощью списка p_stat_type (показано ниже):
p_stat_type = ['Name', 'TBF', 'H', '2B', '3B', 'R', 'ER', 'HR', 'BB', 'IBB', 'HBP', 'SO', 'AVG', 'OBP', 'SLG', 'wOBA', 'playerId', 'K/BB', 'HR/9',\
'K%', 'BB%', 'K-BB%', 'AVG', 'WHIP', 'BABIP', 'LOB%', 'FIP', 'xFIP', 'playerId' 'GB/FB', 'LD%', 'GB%', 'FB%', 'IFFB%', 'HR/FB', 'IFH%', 'BUH%', \
'Pull%', 'Cent%', 'Oppo%', 'Soft%', 'Med%', 'Hard%', 'playerId']
Вот дублирующийся словарь, который помещается в каждый ключ [team]:
'CHC': {'Name': 'Emmanuel Clase', 'TBF': '89', 'H': '19', '2B': '5', '3B': '1', 'R': '8', 'ER': '6', 'HR': '2', 'BB': '4', 'IBB': '0', 'HBP': '1', 'SO': '21', 'AVG': '0.226190476', 'OBP': '0.269662921', 'SLG': '0.38095238', 'wOBA': '0.2757020506', 'playerId': '21032'}
Очень близко к работе, но это только последнее значение для каждого списка в rp_year_STD.
Вот словарь team_roster, функция team_roster возвращает список строк \ текущие игроки для каждой команды:
team_roster = {'ARI' : team_roster(ARI, 'Diamondbacks'),
'BAL' : team_roster(BAL, 'Orioles'),
'BOS' : team_roster(BOS, 'Red Sox'),
'CHC' : team_roster(CHC, 'Cubs'),
'CIN' : team_roster(CIN, 'Reds'),
'CLE' : team_roster(CLE, 'Indians'),
'COL' : team_roster(COL, 'Rockies'),
'DET' : team_roster(DET, 'Tigers'),
'HOU' : team_roster(HOU, 'Astros'),
'KC' : team_roster(KC, 'Royals'),
'LAD' : team_roster(LAD, 'Dodgers'),
'WSH' : team_roster(WSH, 'Nationals'),
'NYM' : team_roster(NYM, 'Mets'),
'OAK' : team_roster(OAK, 'Athletics'),
'PIT' : team_roster(PIT, 'Pirates'),
'SD' : team_roster(SD, 'Padres'),
'SEA' : team_roster(SEA, 'Mariners'),
'SF' : team_roster(SF, 'Giants'),
'STL' : team_roster(STL, 'Cardinals'),
'TB' : team_roster(TB, 'Rays'),
'TEX' : team_roster(TEX, 'Rangers'),
'TOR' : team_roster(TOR, 'Blue Jays'),
'MIN' : team_roster(MIN, 'Twins'),
'PHI' : team_roster(PHI, 'Phillies'),
'ATL' : team_roster(ATL, 'Braves'),
'CWS' : team_roster(CWS, 'White Sox'),
'MIA' : team_roster(MIA, 'Marlins'),
'NYY' : team_roster(NYY, 'Yankees'),
'MIL' : team_roster(MIL, 'Brewers')}
team_roster (teamA, 'TeamA') будет ['A. Man ',' A-Jax ']
Еще раз спасибо всем за любые предложения.