2017-12-13 20 views
0

文字列の書式設定で解決できる問題がありますが、どこから開始するのかは本当に分かりません。 私がしたいことは、下のリストのようにカンマの前にn個の文字があるように、パッドが付けられたリストを作成することです。あなたの助けのための異なる長さのPythonパディング文字列

 1148, 
    39, 
    365, 
    6, 
56524,

乾杯と感謝:)

答えて

2

最もストレートフォワードな方法は、str.rjust()機能を使用することです。たとえば:

your_list = [1148, 39, 365, 6, 56524] 

for element in your_list: 
    print(str(element).rjust(5)) 

そして、あなたが得る:

 1148 
    39 
    365 
    6 
56524

は、他の方向の文字列の正当化のためのstr.center()str.ljust()もあります。

しかし、あなたはまた、フォーマットを経由して、それを行うことができます。

あなたはあなたができることは何かnは知っていると仮定すると、
your_list = [1148, 39, 365, 6, 56524] 

for element in your_list: 
    print("{:>5}".format(element)) 
+0

申し訳ありませんが、私も言っておくべきことは、リストからではなく行ごとにCSVファイルに行を書き込んでいることです。だから私が必要とするのは、最初の整数の長さが違うにもかかわらず、各行の最初の昏睡が整列することです。 –

+0

上記のテクニックを使用して、各行の最初の要素を「パッド」することができます。先頭の最大長(最大値)を調べるだけで済みます。データを最初にループして最大の値を見つけ、文字の長さ( 'len(str(最大値))')を取得し、最初の要素をパディングするときに 'str.rjust()'にその数値を使用します。昏睡などを心配する必要はありません。実際の生成については、組み込みの['csv'](https://docs.python.org/2/library/csv.html)モジュールを使用して入札してくださいCSV構造。 – zwer

0

'{:>n}'.format(number)

ですから、整数のリストを持っているとしてそれをフォーマットしたい場合

numbers = [1148, 39, 365, 6, 56524] 
result = '\n'.join(('{:>5},'.format(x) for x in numbers)) 
0

Format Specification Mini-Languageを参照してください。 "{:{}d},".format(i, width)

あなたは"{:5d},".format(i)iのようなものを探していますが、変数width 5.

の幅で印刷される整数です。

関連する問題