2017-07-16 171 views
1

我正在尝试制作一个棒球统计数据库和阵容。有没有办法循环遍历团队列表并使用字符串作为变量名称?使用字符串作为变量名称Python

例如: 提取队名

team_name = 'BOS' 

使用BOS作为对象变量名和追加到对象列表

BOS = team_data() 
teams.append(BOS) 

后来,当我的索引一些统计数据,我可以做以下检索的阵容:

teams.BOS.lineup 

我知道在Matlab中,你可以d Ø下面,我想知道是否有在Python等价物:

teams.(team_name).lineup 

目前,我有它的数据分配给相同的变量名各环路和追加到列表中。

teams[0].team_name = 'BOS' 
teams[1].team_name = 'NYY' 

我唯一的想法等是有一个开关情况下TEAM_NAME分配给团队变量名。

+1

'为TEAM_NAME团队:'? –

+0

你的matlab例子的等价物是'getattr(teams,team_name).lineup'。您还可以'setattr(teams,team_name,team_data())' – Gribouillis

回答

4

使用字典:

teams = {} 

teams['BOS'] = team_data() 
teams['NYY'] = team_data() 

for key in teams: 
    print(teams[key].team_name) # removed the quotes around "key" 
+0

团队名称字符串是否必须预先设定,或者当我得到团队名称的字符串时是否可以完成? – mtourtelot

+1

它们不必预设。您可以动态创建密钥。 –

+0

谢谢,这是诀窍 – mtourtelot