次の2つのリストがあるとします。
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]
最初のリストの各要素の最初の文字から2番目のリストの各要素の最初の文字まで、カスタムの固定スペース(たとえば、10)を使用しながら、これら2つのリストをループ印刷するにはどうすればよいですか?
10の設定間隔の出力例:
soft skin
pregnant woman
tall man
次の2つのリストがあるとします。
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]
最初のリストの各要素の最初の文字から2番目のリストの各要素の最初の文字まで、カスタムの固定スペース(たとえば、10)を使用しながら、これら2つのリストをループ印刷するにはどうすればよいですか?
10の設定間隔の出力例:
soft skin
pregnant woman
tall man
文字列の書式設定で簡単に実行できます。
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]
for c1, c2 in zip(column1, column2):
print "%-9s %s" % (c1, c2)
または、を使用することもできますstr.ljust。これは、パディングを変数に基づいて行う場合に適しています。
padding = 9
for c1, c2 in zip(column1, column2):
print "%s %s" % (c1.ljust(padding), c2)
(注:単語間のスペースがハードコーディングされているため、パディングは9代わりになります)10
どうですか:
>>> column1 = ["soft","pregnant","tall"]
>>> column2 = ["skin","woman", "man"]
>>> for line in zip(column1, column2):
... print '{:10}{}'.format(*line)
...
soft skin
pregnant woman
tall man
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]
for row in zip(column1, column2):
print "%-9s %s" % row # formatted to a width of 9 with one extra space after
Python3の使用
column1 = ["soft","pregnant","tall"]
column2 = ["skin","woman", "man"]
for line in zip(column1, column2):
print('{:10}{}'.format(*line))
新しいスタイルの文字列フォーマットを使用した1つのライナー:
>>> column1 = ["soft", "pregnant", "tall"]
>>> column2 = ["skin", "woman", "man"]
>>> print "\n".join("{0}\t{1}".format(a, b) for a, b in zip(column1, column2))
soft skin
pregnant woman
tall man