web-dev-qa-db-ja.com

Python:2列で出力

2つの固定列を持つ文字列を印刷しようとしています。たとえば、次のように印刷できるようにしたいと思います。

abc       xyz
abcde     xyz
a         xyz

これを実現するために印刷時に出力文字列をフォーマットする正しい方法は何ですか?また、これはバージョン2.6の前とバージョン2.6の後でどのように行われますか?

7
Victor Brunell

フォーマットを使用して、列間の修正スペースに言及できます

'{0:10}  {1}'.format(s1, s2)

古いスタイルのフォーマット

'%-10s' '%s' % (s1,s2)
13
AlokThakur

> = python3.6より前

s1='albha'
s2='beta'

f'{s1}{s2:>10}'

#output
'albha      beta'
1
Roushan

これは、要素のすべての長さで機能するはずです(文字列であると仮定します。これは、データが2つの別々のリストfirstsecondにあることを前提としています。

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で機能します。

1
L3viathan

これを行うにはいくつかの方法があり、データの保存方法によって異なります。データが同じ長さのリストに保存されていることを確認します。

for i in range(len(list1)):
    print(“%3i\t%3i” %(list1[i],list2[i]))

これは、Pythonのすべてのバージョンで機能します。 3iは、出力のフィールド幅が3文字であることを保証します

0
BenJ