Python 2.6.5の文字列s
を作成します。これには、リストx
のエントリ数と一致するさまざまな数の%s
トークンが含まれます。フォーマットされた文字列を書き出す必要があります。以下は機能しませんが、私がやろうとしていることを示しています。この例では、3つの%s
トークンがあり、リストには3つのエントリがあります。
s = '%s BLAH %s FOO %s BAR'
x = ['1', '2', '3']
print s % (x)
出力文字列を次のようにします。
1 BLAH 2 FOO 3 BAR
print s % Tuple(x)
の代わりに
print s % (x)
Pythonの format メソッドをご覧ください。次に、次のように書式設定文字列を定義できます。
>>> s = '{0} BLAH {1} BLAH BLAH {2} BLAH BLAH BLAH'
>>> x = ['1', '2', '3']
>>> print s.format(*x)
'1 BLAH 2 BLAH BLAH 3 BLAH BLAH BLAH'
これに続いて リソースページ 、xの長さが変化する場合、以下を使用できます。
', '.join(['%.2f']*len(x))
リストx
から各要素のプレースホルダーを作成します。以下に例を示します。
x = [1/3.0, 1/6.0, 0.678]
s = ("elements in the list are ["+', '.join(['%.2f']*len(x))+"]") % Tuple(x)
print s
>>> elements in the list are [0.33, 0.17, 0.68]
このクールなこと(フォーマット文字列内からリストへのインデックス付け)について学んだばかりなので、この古い質問に追加しています。
s = '{x[0]} BLAH {x[1]} FOO {x[2]} BAR'
x = ['1', '2', '3']
print s.format (x=x)
ただし、スライシングの方法がまだわかりません(フォーマット文字列'"{x[2:4]}".format...
の内部)。だれかがアイデアを持っている場合はそれを見つけたいと思いますが、あなたはそれを単にできないと思います。
1行です。リストのprint()でformatを使用することに対する少し即興的な回答
これはどうですか:(python 3.x)
sample_list = ['cat', 'dog', 'bunny', 'pig']
print("Your list of animals are: {}, {}, {} and {}".format(*sample_list))
format() の使用に関するこちらのドキュメントをお読みください。
これは楽しい質問でした!これを処理する別の方法可変長リストの場合は、.format
メソッドとリストの展開を最大限に活用する関数を作成することです。次の例では、派手な書式設定は使用していませんが、ニーズに合わせて簡単に変更できます。
list_1 = [1,2,3,4,5,6]
list_2 = [1,2,3,4,5,6,7,8]
# Create a function that can apply formatting to lists of any length:
def ListToFormattedString(alist):
# Create a format spec for each item in the input `alist`.
# E.g., each item will be right-adjusted, field width=3.
format_list = ['{:>3}' for item in alist]
# Now join the format specs into a single string:
# E.g., '{:>3}, {:>3}, {:>3}' if the input list has 3 items.
s = ','.join(format_list)
# Now unpack the input list `alist` into the format string. Done!
return s.format(*alist)
# Example output:
>>>ListToFormattedString(list_1)
' 1, 2, 3, 4, 5, 6'
>>>ListToFormattedString(list_2)
' 1, 2, 3, 4, 5, 6, 7, 8'