2015-08-24 2 views
0

Вот небольшая основная функция для создания словаря:Python словарь Форматирование запросов

def Professor(name,salary,course): 
    ProfDict = {"Name":name,"Salary":salary,"Course":course} 
    return (ProfDict) 

Я хочу вернуть словарь в хорошем формате, например:

Имя: Фред Смит; Отдел: история; Заработная плата: 30000 фунтов стерлингов

Я не могу найти многого о форматировании словаря, спасибо.

ответ

1

Словарь не отформатирован, так как это всего лишь структура данных. Вы хотите построить строку, используя данные, хранящиеся в словаре.

def Professor(name,salary,course): 
    ProfDict = {"Name":name,"Salary":salary,"Course":course} 
    return "Name: {0[Name]}; Salary: {0[Salary]}; Course: {0[Course]}".format(ProfDict) 
+0

Спасибо, что это хороший способ сделать это, я буду помнить это – jsb95

+0

Я на самом деле пробовал его с Python 2.7 и без 0 в заполнителях и получил ошибку: 'IndexError: tuple index out of rang e' С 0s в заполнителях он работает на 2.7 – MauricioRoman

+0

Я удалил эту последнюю часть. Большая часть моей работы по-прежнему находится в Python 2.6, поэтому я забыл, как точно опускается имя поля. – chepner

-1

Прежде всего, не возвращайте словарь в круглые скобки. Для того, чтобы распечатать, сделать так:

ProfDict = Professor("Dr. Bob", 100000, "Intro to Medical Coding") 
for key, value in ProfDict.items(): 
    print key, ':', 'value, ";", 

Вы можете или конечно использовать любые дополнительные строки форматирования, чтобы сделать его, как вы.

2

Пропустите словарь как ** kwargs для format функции струны:

def Professor(name, salary, course): 
    prof_dict = {"Name": name,"Salary": salary,"Course": course} 
    return prof_dict 

some_prof = Professor(...) 
nice_string = "Name: {Name}; Department: {Course}; Salary: {Salary}".format(
    **some_prof) 
0

Это Вы хотите:

def Professor(name,salary,course): 
ProfDict = {"Name":name,"Salary":salary,"Course":course} 
return (ProfDict) 

temp = Professor("Fred Smith",30000,"History") 
print "Name:",temp["Name"] + "; Department:",temp["Course"] + "; Salary: " + str(temp["Salary"]) 
Смежные вопросы