Print просто распечатывает структуру на ваше устройство вывода (обычно консоль). Ничего более. Чтобы вернуть его из вашей функции, вы должны сделать:
def autoparts():
parts_dict = {}
list_of_parts = open('list_of_parts.txt', 'r')
for line in list_of_parts:
k, v = line.split()
parts_dict[k] = v
return parts_dict
Зачем возвращаться? Хорошо, если вы этого не сделаете, этот словарь умирает (получает мусор) и больше не доступен, как только этот вызов функции заканчивается. Если вы вернете значение, вы можете делать с ним другие вещи. Такие как:
my_auto_parts = autoparts()
print my_auto_parts['engine']
Видишь, что случилось? Вызван autoparts (), он вернул parts_dict, и мы сохранили его в переменной my_auto_parts. Теперь мы можем использовать эту переменную для доступа к объекту словаря, и он продолжает жить, даже если вызов функции завершен. Затем мы распечатали объект в словаре с ключом 'engine'.
Для хорошего урока посмотрите погружение в python . Это бесплатно и очень легко следовать.