我非常喜欢用字典来格式化字符串。它帮助我阅读我正在使用的字符串格式,以及让我利用现有的字典。例如:
class MyClass:
def __init__(self):
self.title = 'Title'
a = MyClass()
print 'The title is %(title)s' % a.__dict__
path = '/path/to/a/file'
print 'You put your file here: %(path)s' % locals()
但是我搞不懂python。X语法来做同样的事情(或者如果可能的话)。我想做以下事情
# Fails, KeyError 'latitude'
geopoint = {'latitude':41.123,'longitude':71.091}
print '{latitude} {longitude}'.format(geopoint)
# Succeeds
print '{latitude} {longitude}'.format(latitude=41.123,longitude=71.091)
大多数答案只格式化字典的值。
如果你也想将键格式化为字符串,你可以使用dict.items():
geopoint = {'latitude':41.123,'longitude':71.091}
print("{} {}".format(*geopoint.items()))
输出:
('latitude', 41.123) ('longitude', 71.091)
如果你想以一种任意的方式格式化,也就是说,不像元组那样显示键值:
from functools import reduce
print("{} is {} and {} is {}".format(*reduce((lambda x, y: x + y), [list(item) for item in geopoint.items()])))
输出:
纬度是41.123,经度是71.091
大多数答案只格式化字典的值。
如果你也想将键格式化为字符串,你可以使用dict.items():
geopoint = {'latitude':41.123,'longitude':71.091}
print("{} {}".format(*geopoint.items()))
输出:
('latitude', 41.123) ('longitude', 71.091)
如果你想以一种任意的方式格式化,也就是说,不像元组那样显示键值:
from functools import reduce
print("{} is {} and {} is {}".format(*reduce((lambda x, y: x + y), [list(item) for item in geopoint.items()])))
输出:
纬度是41.123,经度是71.091