pprint模組 提供了列印出任何python資料結構類和方法。
模組方法:
class pprint.prettyprinter(indent=1,width=80,depth=none, stream=none)
建立乙個prettyprinter物件
indent --- 縮排,width --- 一行最大寬度,
depth --- 列印的深度,這個主要是針對一些可遞迴的物件,如果超出指定depth,其餘的用"..."代替。
eg: a=[1,2,[3,4,],5] a的深度就是2; b=[1,2,[3,4,[5,6]],7,8] b的深度就是3
stream ---指輸出流物件,如果stream=none,那麼輸出流物件預設是sys.stdout
pprint.pformat(object,indent=1,width=80, depth=none)
返回格式化的物件字串
pprint.pprint(object,stream=none,indent=1, width=80, depth=none)
輸出格式的物件字串到指定的stream,最後以換行符結束。
pprint.isreadable(object)
判斷物件object的字串物件是否可讀
pprint.isrecursive(object)
判斷物件是否需要遞迴的表示
eg: pprint.isrecursive(a) --->false
pprint.isrecursive([1,2,3])-->true
pprint.saferepr(object)
返回乙個物件字串,物件中的子物件如果是可遞迴的,都被替換成.這種形式。
prettyprinter 物件具有的方法與上面類似,不在贅述。
importpprint
data=("this is a string", [1, 2, 3, 4], ("more tuples",1.0, 2.3, 4.5), "this is yet another string")
pprint.pprint(data)
輸出:('this is a string',
[1, 2, 3, 4],
('more tuples', 1.0, 2.3, 4.5),'this is yet another string')
線段樹 P4588 線段樹用法
簡單來說就是使用線段樹來儲存操作步驟,因為如果直接計算的話long long會溢位,所以建立乙個 1,q 的線段樹,使用線段樹的葉子節點來表示權值,非葉子節點表示操作過程 開始的時候線段樹的葉子節點初始化為1,而非葉子節點c k c k 1 c k 1 1 mod 也為1。當開始進行操作的時候,如果...
P4139 上帝與集合的正確用法
根據一些書上的記載,上帝的一次失敗的創世經歷是這樣的 第一天,上帝創造了乙個世界的基本元素,稱做 元 第二天,上帝創造了乙個新的元素,稱作 被定義為 元 構成的集合。容易發現,一共有兩種不同的 第三天,上帝又創造了乙個新的元素,稱作 被定義為 構成的集合。容易發現,一共有四種不同的 第四天,上帝創造...
P1030 求先序排列 substr的用法
給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 le 8 8 輸入格式 22行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。輸出格式 11行,表示一棵二叉樹的先序。輸入樣例 1 複製 badc bdca輸出樣例 1 複製 abcd方法 模板概括為s...