2つの固定列を持つ文字列を印刷しようとしています。たとえば、次のように印刷できるようにしたいと思います。
abc xyz
abcde xyz
a xyz
これを実現するために印刷時に出力文字列をフォーマットする正しい方法は何ですか?また、これはバージョン2.6の前とバージョン2.6の後でどのように行われますか?
フォーマットを使用して、列間の修正スペースに言及できます
'{0:10} {1}'.format(s1, s2)
古いスタイルのフォーマット
'%-10s' '%s' % (s1,s2)
> = python3.6より前
s1='albha'
s2='beta'
f'{s1}{s2:>10}'
#output
'albha beta'
これは、要素のすべての長さで機能するはずです(文字列であると仮定します。これは、データが2つの別々のリストfirst
とsecond
にあることを前提としています。
maxlen = len(max(first, key=len))
for i,j in Zip(first, second):
print "%s\t%s" % (i.ljust(maxlen, " "), j)
これは、2.6の前後のPython 2.xで機能します。
これを行うにはいくつかの方法があり、データの保存方法によって異なります。データが同じ長さのリストに保存されていることを確認します。
for i in range(len(list1)):
print(“%3i\t%3i” %(list1[i],list2[i]))
これは、Pythonのすべてのバージョンで機能します。 3iは、出力のフィールド幅が3文字であることを保証します