2016-11-09 3 views
0

のための1つのライナーこれは明白かもしれないが、私は次のことを達成するためのイテレータ/ 1ライナーを使用することができるかどうかのこだわっている:Pythonのイテレータ/ループ

私は書くことができますどのように
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

への変更をキーワード辞書を使用することをお勧めしません。 –

答えて

3

dictの理解を使用できます。

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方法:下記をご覧ください。 `dict.fromkeys(TEAMS、u'Rugby ')`: はまた、値が不変オブジェクトであるならば、あなたは、単に行うことができ、VAR名としてdの代わりに

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