最近,我发现''.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: 'year'
。
python中是否有创建dictionary的技巧,以便它自动填充键和值,例如somefunc(year, month, location)
将输出{'year':year, 'month': month, 'location': location}
?
我对python还很陌生,找不到关于这个主题的任何信息,但是这样的技巧可以极大地改进和缩小我当前的代码。
提前谢谢,请原谅我的英语。
第一个
print
应该是另外,如果你正在寻找一些捷径,你可以写一个像,没有大的区别。
…是你要找的。它在功能上与执行
.format(year=data['year'], ...)
或您给出的其他示例完全相同。双星号的东西很难找到,所以通常被称为“夸尔格”。这是一张good SO question on this syntax
您可以使用
dict()
可调用:当传递关键字参数时,它会创建一个dict,其中包含指定为kwargs的元素。
如果不想指定参数名,请使用
.format()
的位置样式:但是,如果您试图做类似于^{} in PHP 所做的事情(创建一个将变量名映射到其值的dict映射,而不单独指定名称和变量),请不要这样做。这只会导致难看的不可读代码,而且无论如何都需要讨厌的黑客操作。
相关问题 更多 >
编程相关推荐