2016-08-17 14 views
-1

私は1つのリストと1つの辞書を持っています。リストの値を辞書のキーと比較したい。私が持っている場合:リストを辞書と比較して新しいリストを作成する

mydict = {'Hello':1,'Hi':2,'Hey':3} 

と:

output = [3, None, 1] 

ありがとう:

mylist = ['Hey','What\'s up','Hello'] 

を私は出力になりたいです!

私は[mydict[i] for i in mylist]を試しましたが、「なし」の代わりにエラーが表示されます。私はネストされたforループを使用してみました(私はそのビットを削除しました)が、それは非効率的であると判断しました。キーが辞書にない場合

output = [ mydict.get(key) for key in mylist ] 

dict.getその戻りNone

+1

あなたは何を試してみましたか?このサイトでは、あなたの試みたコードを表示し、あなたのコードがあなたの必要性のために十分にうまくいかない理由だけを述べる必要があります。 –

+1

私は 'mydict [i] for i in mylist]を試してみましたが、' None'の代わりにエラーが出ます。私はネストされたforループを使用してみました(私はそのビットを削除しました)が、それは非効率的であると判断しました。 –

答えて

2

使用dict.get()、:

[mydict.get(k) for k in mylist] 

>>> mydict = {'Hello':1,'Hi':2,'Hey':3} 
>>> mylist = ['Hey','What\'s up','Hello'] 
>>> out = [mydict.get(k) for k in mylist] 
>>> out 
[3, None, 1]