2017-02-17 43 views
0

タイトルが十分明確であるかどうかわかりません。ディクショナリを使用してパートナーの値を印刷する方法

words = ['sense', 'The', 'makes', 'sentence', 'perfect', 'sense', 'now'] 
numbers = ['1', '2', '3', '4', '5', '6'] 
dictionary = dict(zip(numbers, words)) 
print(dictionary) 
correctorder = ['2', '4', '7', '3', '5', '6'] 

私は単に文が理にかなっているように、私はcorrectorder配列を使用して辞書から特定の値を印刷することができます正確にどのように把握しようとしています。

答えて

2

correctorderを反復し、対応するdict値を取得してから結果を結合することができます。

' '.join(dictionary[ele] for ele in correctorder) 

これは、あなたが最後に'7'を含めるようにnumbersを修正することを想定しています。

>>> ' '.join(dictionary[ele] for ele in correctorder) 
'The sentence now makes perfect sense' 
0

これは何ですか?

for i in correctorder: 
    print dictionary[i]," ", 

短く単純です。ミッチが言ったように、7を修正してください。

0

あなたは明示的なループを避けるためにoperator.itemgetterを使用することができます。これは、単にstr.joinを使用するに連結

>>> from operator import itemgetter 
>>> print(itemgetter(*correctorder)(dictionary)) 

を:

>>> ' '.join(itemgetter(*correctorder)(dictionary)) 
関連する問題