2016-11-09 54 views
0

这可能是显而易见的,但我坚持为我是否可以使用一个迭代器/一个班轮实现如下: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迭代器的问题,所以我道歉,如果这有一个答案,我试图寻找,但没有找到一个好的答案,这个特别的问题。

+2

如果值是不可变对象,那么你可以简单地做:'dict.fromkeys(TEAMS,u'Rugby“)'。 –

回答

3

您可以使用词典理解。看看下面:

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

为什么让我投票呢? – pt12lol

+0

您可能想将您的变量重命名为非内置类型 –

+0

。只是提供了与作者相同的名字。 – pt12lol

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

使用字典fromkeys方法。 另外,不建议使用关键字字典作为变量名称,改到D代替

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