
每一個字符串的寬度不同,導致打印輸出時的格式不像上圖中那么工整。
將上圖中的字典中的每個鍵的字符串寬度調整成相同的值,就可以像上圖那樣輸出。
方法一:使用字符串的str.ljust(),str.rjust(),str.center()進行左右居中對齊
>>> help(str.ljust) Help on method_descriptor: ljust(...) S.ljust(width[, fillchar]) -> string Return S left-justified in a string of length width. Padding is done using the specified fill character (default is a space).
第一個參數是,字符串S的寬度,第二個參數是,以此字符串作為填充
>>> s = 'abc' >>> s.ljust(20) 'abc
(1)如上例使用左對齊,使用空格補齊字符串
>>> s.ljust(20,'+') 'abc+++++++++++++++++'
(2)右對齊,在左面填充
>>> s.rjust(20) ' abc' >>> len(s.rjust(20)) 20
(3)居中對齊
>>> s.center(20) ' abc '
方法二:使用format方法
>>> help(format) Help on built-in function format in module __builtin__: format(...) format(value[, format_spec]) -> string Returns value.__format__(format_spec) format_spec defaults to ""
第一個參數是要格式的字符串,第二個參數是指定的規則
(1)左對齊 使用’<20’
>>> format(s,'<20') 'abc
(2)右對齊,使用‘>20’
>>> format(s,'>20') ' abc'
(3)居中,使用‘^20’
>>> format(s,'^20') ' abc '
本例實現方法:
(1)生成字典d
>>> d = {'lodDist':100.0, 'smallcull':0.04,'Distcull':500,"trilinear":40,"farclip":477}
>>> d
{'smallcull': 0.04, 'farclip': 477, 'lodDist': 100.0, 'Distcull': 500, 'trilinear': 40}
(2)獲取字典的所有鍵,組成列表
>>> d.keys() ['smallcull', 'farclip', 'lodDist', 'Distcull', 'trilinear']
(3)計算每一個鍵值的字符串寬度
>>> map(len,d.keys())
[9, 7, 7, 8, 9]
(4)計算字典所有的鍵值字符串寬度的最大值
>>> m = max(map(len,d.keys())) >>> m 9
(5)格式化輸出
a、py2的方式
>>> for x in d: print x.ljust(m),':',d[x] smallcull : 0.04 farclip : 477 lodDist : 100.0 Distcull : 500 trilinear : 40
b、py2和py3都可以的方式
>>> for x in d: print("%s%s%s"%(x.ljust(m),':',d[x])) smallcull:0.04 farclip :477 lodDist :100.0 Distcull :500 trilinear:40
此方式注意,類似於C語言的格式化輸出,但字符串和格式化部分使用“%”分隔(C語言使用“,”分隔)
