Gần đây, tôi thấy chức năng ''.format
rất hữu ích vì nó có thể cải thiện khả năng đọc rất nhiều so với định dạng %
. Đang cố gắng để đạt được định dạng chuỗi đơn giản:Chức năng ".format" của python
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)
Trong khi hai bản in đầu tiên làm định dạng như tôi mong đợi (vâng, something=something
trông xấu xí, nhưng đó là chỉ là ví dụ), người cuối cùng sẽ tăng KeyError: 'year'
. Có bất kỳ mẹo nào trong python để tạo từ điển để nó tự động điền các khóa và giá trị, ví dụ somefunc(year, month, location)
sẽ xuất ra {'year':year, 'month': month, 'location': location}
?
Tôi khá mới với python và không thể tìm thấy bất kỳ thông tin nào về chủ đề này, tuy nhiên một mẹo như thế này sẽ cải thiện và thu hẹp mã hiện tại của tôi một cách mạnh mẽ.
Cảm ơn trước và tha thứ cho tiếng Anh của tôi.
Có vẻ như không có cách nào để thu nhỏ mã lặp lại này :) Chức năng là tốt và đó là những gì tôi đã làm, nhưng sau đó tôi thấy khó để duy trì vì rất nhiều lý lẽ tôi cần để thay đổi mã ở một vài nơi, hóa ra thậm chí còn tệ hơn là tạo ra dict bằng tay. –
@duke_nukem có nó phụ thuộc vào cách sử dụng thực tế của bạn. Mã này là tốt và api định dạng là đủ rõ ràng. Nếu bạn muốn đạt được thứ gì đó như 'định dạng (* args, ** kwargs)', nó cũng có thể được thực hiện, nhưng tôi không nghĩ nó có thể làm mọi thứ dễ dàng hơn. – okm