Niedawno znalazłem bardzo użyteczną funkcję ''.format
, ponieważ może ona poprawić czytelność w porównaniu do formatowania %
. chce osiągnąć proste formatowanie wyrażenie:Funkcja ".format" Pythona
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)
podczas gdy dwa pierwsze odbitki należy formatować jak oczekuję (tak, something=something
wygląda brzydko, ale to tylko przykład), ostatni podniosłoby KeyError: 'year'
. Czy istnieje jakaś sztuczka w pythonie, aby utworzyć słownik, aby automatycznie wypełniał klucze i wartości, na przykład somefunc(year, month, location)
wyświetli {'year':year, 'month': month, 'location': location}
?
Jestem całkiem nowy dla Pythona i nie mogłem znaleźć żadnych informacji na ten temat, jednak taka sztuczka poprawiłaby i zmniejszyła mój obecny kod drastycznie.
Z góry dziękuję i przepraszam za mój angielski.
Wydaje się, że nie ma sposobu, aby zmniejszyć ten powtarzający się kod :) Funkcja jest dobra i to było to, co zrobiłem, ale później okazało się, że trudno ją utrzymać, ponieważ Wiele argumentów musiałem zmienić w kilku miejscach, co okazało się jeszcze gorsze niż faktyczne tworzenie dicta przez ręce. –
@duke_nukem tak, to zależy od rzeczywistego użycia. Kod jest w porządku, a format interfejsu jest wystarczająco jasny. Jeśli chcesz osiągnąć coś takiego jak 'format (* args, ** kwargs)', to można to zrobić również, ale nie sądzę, że mogłoby to ułatwić. – okm