[英]Python multiline alignment using format
當我進行數據清理時,我想按行打印我的 arg 名稱及其值。 然而,args 的名稱長度不同,它們的值也不同。 為清楚起見,我想在每行中將 arg 的名稱左對齊,並將 arg 的值右對齊。
例如,我想要如下結果:
Output:
Arg1 : value1
Arg2222222222222222: value2
Arg3 : value33333333333
假設我有 3 個參數和 3 個值。
name_list = ['Arg1','Arg2222222222222222','Arg3']
value_list = ['value1', 'value2', 'value33333333333']
使用以下代碼,我可以清楚地打印出來。
代碼:
name_list = ['Arg1','Arg2222222222222222','Arg3']
value_list = ['value1', 'value2', 'value33333333333']
padding1 = max(map(len, name_list))
padding2 = max(map(len, value_list))
print("padding1 = {}, padding2 = {}".format(padding1,padding2))
for num in range(len(name_list)):
print('{0}: {1}'.format(name_list[num].ljust(padding1), value_list[num].rjust(padding2)))
Output:
padding1 = 19, padding2 = 16
Arg1 : value1
Arg2222222222222222: value2
Arg3 : value33333333333
我們可以使用更少的代碼來實現相同的目標嗎? 或者,我們可以更具體地做嗎?
謝謝你們的幫助,伙計們!
不多,但如果使用 fstrings,你可以這樣做
for name, value in zip(name_list, value_list):
print(f'{name:<{padding1}}:{value:>{padding2}}') #fstring version
<
和>
分別代表左右 alignment。
Output 將
Arg1 : value1
Arg2222222222222222: value2
Arg3 :value33333333333
看到這個。
使用更少的代碼,並且只缺少分隔符:
import pandas as pd
name_list = ['Arg1','Arg2222222222222222','Arg3']
value_list = ['value1', 'value2', 'value33333333333']
print(pd.DataFrame(value_list, index=name_list, columns=[''])) # [''] hides the column name (default: 0)
Output:
Arg1 value1
Arg2222222222222222 value2
Arg3 value33333333333
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.