dorapon2000’s diary

忘備録的な。セキュリティとかネットワークすきです。

Pythonで2列をテーブルのようにprintする

tabulateのような、テーブル表示をするためのライブラリもありますが、フォーマット文字列だけでも縦を揃えられます。ただし、日本語が入ると揃いません。

def print_align_left(label, value):
    print(f'{label:<20}: {value}')

# ラベルを右寄せ
def print_align_right(label, value):
    print(f'{label:>20}: {value}')


print_align_left('Country', 'Japan')
print_align_left('Anthem', 'Kimigayo')
print_align_left('Capital', 'Tokyo')
print_align_left('National language', 'Japanese')
print_align_left('Area', '377,975 km2')
print_align_left('Population', '126,226,568')

print('\n' + '*' * 40 + '\n')

print_align_right('Country', 'Japan')
print_align_right('Anthem', 'Kimigayo')
print_align_right('Capital', 'Tokyo')
print_align_right('National language', 'Japanese')
print_align_right('Area', '377,975 km2')
print_align_right('Population', '126,226,568')
Country             : Japan
Anthem              : Kimigayo
Capital             : Tokyo
National language   : Japanese
Area                : 377,975 km2
Population          : 126,226,568

****************************************

             Country: Japan
              Anthem: Kimigayo
             Capital: Tokyo
   National language: Japanese
                Area: 377,975 km2
          Population: 126,226,568

github.com

参考

Python spacing and aligning strings - Stack Overflow