我從 pandas 列中提取了以下字串(它是一個運動示例):
unpack ="{'TB': [['Brady', 'Godwin'], ['2023-RD1', '2023-RD4']], 'KC': [['Mahomes'], ['2023-RD2']]}"
要對字串進行打包,我使用以下內容:
from ast import literal_eval
t_dict = literal_eval(unpack)
print(t_dict)
這給了我:
{'TB': [['Brady', 'Godwin'], ['2023-RD1', '2023-RD4']], 'KC': [['Mahomes'], ['2023-RD2']]}
我現在正在嘗試將所有這些鍵/值提取到變數/串列中。我的預期輸出是:
team1 = 'TB'
team2 = 'KC'
team1_trades_players = ['Brady', 'Godwin']
team1_trades_picks = ['2023-RD1', '2023-RD4']
team2_trades_players = ['Mahomes']
team2_trades_picks = ['2023-RD2]
我嘗試了以下方法,但我不確定如何將第一次迭代發送到team1和第二次迭代發送到team2:
#extracting team for each pick
for t in t_dict:
print(t)
給我:
TB
KC
然后對于值,我可以正確列印它們,但不確定如何發送回串列:
#extracting lists for each key:
for traded in t_dict.values():
#extracting the players traded for each team
for players in traded[0]:
print(players)
#extracting picks for each team
for picks in traded[1]:
print(picks)
產生:
Brady
Godwin
2023-RD1
2023-RD4
Mahomes
2023-RD2
我想我很接近,但錯過了發回他們的變數/串列的最后一步。任何幫助將不勝感激!謝謝!
uj5u.com熱心網友回復:
如果事先知道團隊的數量,那就很簡單了:
team1, team2 = t_dict.keys()
team1_trades_players, team1_trades_picks = t_dict[team1]
team2_trades_players, team2_trades_picks = t_dict[team2]
如果事先不知道團隊的數量,我建議只使用t_dict.
uj5u.com熱心網友回復:
我建議將所有內容放在嵌套的字典中,然后您可以輕松訪問:
t_dict = {'TB': [['Brady', 'Godwin'], ['2023-RD1', '2023-RD4']], 'KC': [['Mahomes'], ['2023-RD2']]}
t_nested = {k:{"players": v[0], "picks": v[1]} for k,v in t_dict.items()}
team1 = list(t_nested.keys())[0]
team2 = list(t_nested.keys())[1]
team1_trades_players = t_nested[team1]['players']
team1_trades_picks = t_nested[team1]['picks']
team2_trades_players = t_nested[team2]['players']
team2_trades_picks = t_nested[team2]['picks']
但可能對于大多數用例來說,最好將其保留在嵌套的 dict 結構中并直接使用它,而不是創建所有這些變數,這會使一切變得不那么動態。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455040.html
標籤:Python
下一篇:django.db.utils.IntegrityError:NOTNULL約束失敗:main_profile.name
