Функция .format в python

Недавно я нашел функцию ''.formatочень полезной, поскольку она может улучшить читаемость много по сравнению с форматированием %. Попытка добиться простого форматирования строки:

data = {'year':2012, 'month':'april', 'location': 'q2dm1'}

year = 2012
month = 'april'
location = 'q2dm1'
a = "year: {year}, month: {month}, location: {location}"
print a.format(data)
print a.format(year=year, month=month, location=location)
print a.format(year, month, location)

В то время как два первых отпечатка форматируются так, как я ожидаю (да, something=somethingвыглядит уродливо, но это только пример), последний вызовет KeyError : 'год'. Есть ли какой-нибудь трюк в python для создания словаря, чтобы он автоматически заполнил ключи и значения, например, somefunc(year, month, location)выведет {'year':year, 'month': месяц, 'местоположение': location}?

Я новичок в python и не смог найти никакой информации по этой теме, однако такой трюк значительно улучшит и сократит мой текущий код.

Заранее спасибо и извините за мой английский.

5
задан icecrime 15 April 2012 в 10:10
поделиться