Python迭代器/一行for循环



这可能是显而易见的,但我被困在是否可以使用迭代器/一行来实现以下目标:

TEAMS = [u'New Zealand', u'USA']
dict = {}

我怎么写:

for team in TEAMS:
    dict[team] = u'Rugby'

作为迭代器,例如:

 (dict[team] = u'Rugby' for team in TEAMS) # Or perhaps
 [dict[team] for team in TEAMS] = u'Rugby

可以做到吗?括号应该放在哪里?

所需输出:

dict = {u'New Zealand': u'Rugby', u'USA': u'Rugby'}

我知道python中有很多与迭代器相关的问题,所以我很抱歉,如果这有一个答案,我试着寻找,无法找到一个很好的答案。

您可以使用字典推导。请看下面:

TEAMS = [u'New Zealand', u'USA']
d = {team: 'Rugby' for team in TEAMS}

使用dict fromkeys方法。另外,不建议使用关键字dict作为变量名,改为d而不是

TEAMS = [u'New Zealand', u'USA']
d = {}.fromkeys(TEAMS, u'Rugby')
# d = {u'New Zealand': u'Rugby', u'USA': u'Rugby'}
for team in TEAMS:
    dict.update({team: u'Rugby'})
TEAMS = [u'New Zealand', u'USA']    
dict(zip(TEAMS, ['Rugby'] * 2))

最新更新