2017-02-17 1 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) 

Это при условии, что вы фиксируете numbers включить '7' в конце.

>>> ' '.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, чтобы избежать явного цикла:

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

конкатенировать это просто использовать str.join:

>>> ' '.join(itemgetter(*correctorder)(dictionary)) 
Смежные вопросы