例如,某字典存储了一系列属性值:
{
"lodDist": 100.0,
"SmallCull": 0.04,
"DostCull": 500.0,
"trilinear": 40,
"farclip": 477
}
要求:在程序中,以key的最大长度对齐,格式工整地将其内容输出:
lodDist : 100.0
SmallCull : 0.04
DostCull : 500.0
trilinear : 40
farclip : 477
解决方案:
-
使用字符串的
ljust()
、rjust()
、center()
方法进行左、右、居中对齐; -
使用内置函数
format()
,传递类似<20
、>20
、^20
参数完成同样功能。
- 对于字符串的
ljust()
、rjust()
、center()
方法:
s = ''
s.ljust(width, fillchar)
ljust()
方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
width
表示指定的字符串长度;fillchar
表示填充字符,默认为空格,填充字符必须恰好只有一个字符长。
rjust()
、center()
方法与ljust()
方法类似。
- 对于内置函数
format()
:
s = 'abc'
print(format(s, '*<10'))
print(format(5, '*>10'))
print(format(-123, '0=+10'))
abc******* #结果
*********5
-000000123
format()
函数用于格式化字符串,format()
函数调用的是__format__()
方法。
^
、<
、>
分别是居中、左对齐、右对齐,前面跟填充字符,后面跟宽度;=
表示正负符号左对齐;+
表示总输出正负符号。
- 方案1示例:
d = {
"lodDist": 100.0,
"SmallCull": 0.04,
"DostCull": 500.0,
"trilinear": 40,
"farclip": 477
}
w = max(map(len, d.keys()))
for k,v in d.items():
print(k.ljust(w), ':', v)
lodDist : 100.0 #结果
SmallCull : 0.04
DostCull : 500.0
trilinear : 40
farclip : 477
- 方案2示例:
d = {
"lodDist": 100.0,
"SmallCull": 0.04,
"DostCull": 500.0,
"trilinear": 40,
"farclip": 477
}
w = str(max(map(len, d.keys())))
for k,v in d.items():
print(format(k, '<' + w), ':', v)
lodDist : 100.0 #结果
SmallCull : 0.04
DostCull : 500.0
trilinear : 40
farclip : 477
注意,format()
中不能直接写成format(k, '<w')
,会无法识别变量w。
转载:https://blog.csdn.net/miss1181248983/article/details/101314050
查看评论