Python迭代器/一个衬里for循环

时间:2016-11-09 11:03:59

标签: python python-2.7 iterator

这可能是显而易见的,但我是否可以使用迭代器/单线程来实现以下目标:

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中有很多与迭代器相关的问题,所以如果有答案我会道歉,我试过看,并且找不到这个特定问题的好答案。

4 个答案:

答案 0 :(得分:3)

你可以使用dict理解。看看下面:

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

答案 1 :(得分:1)

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

TEAMS = [u'New Zealand', u'USA']
d = {}.fromkeys(TEAMS, u'Rugby')
# d = {u'New Zealand': u'Rugby', u'USA': u'Rugby'}

答案 2 :(得分:0)

for team in TEAMS:
    dict.update({team: u'Rugby'})

答案 3 :(得分:0)

TEAMS = [u'New Zealand', u'USA']    
dict(zip(TEAMS, ['Rugby'] * 2))