Вам не следует называть переменные dict и list, потому что тогда вы больше не сможете использовать встроенные методы. Я переименовал их в этом примере.
>>> l = [1, 2, 37, 32, 4]
>>> d = dict = {
... 32: 'Megumi',
... 1: 'Ai',
... 2: 'Risa',
... 3: 'Eri',
... 4: 'Sayumi',
... 37: 'Mai'
... }
Вы не можете отсортировать тип dict по умолчанию в Python, потому что это хеш-таблица и, следовательно, сортируется по хеш-функциям ключей. В любом случае, вы можете найти некоторые альтернативные реализации Python при поиске OrderedDict или чего-то подобного в google.
Но вы можете создать новый список, содержащий (ключ, значение) -туплицы из словаря, который отсортирован по первому списку:
>>> s = list((i, d.get(i)) for i in L)
>>> print s
[(1, 'Ai'), (2, 'Risa'), (37, 'Mai'), (32, 'Megumi'), (4, 'Sayumi')]
Или, если вас интересуют только значения:
>>> s = list(d.get(i) for i in L)
>>> print s
['Ai', 'Risa', 'Mai', 'Megumi', 'Sayumi']
Надеюсь, это поможет!