7

Python 文字列の 3 文字ごとにスペースを追加する必要がありますが、その方法についての手がかりがあまりありません。

文字列:

345674655

私が必要とする出力:

345 674 655   

これを達成する方法についての手がかりはありますか?

よろしくお願いします、

4

5 に答える 5

26

文字列を 3 つのチャンクで反復処理する方法が必要なだけです。

>>> a = '345674655'
>>> [a[i:i+3] for i in range(0, len(a), 3)]
['345', '674', '655']

それから' '.join結果。

>>> ' '.join([a[i:i+3] for i in range(0, len(a), 3)])
'345 674 655'

ご了承ください:

>>> [''.join(x) for x in zip(*[iter(a)]*3)]
['345', '674', '655']

文字列の分割にも機能します。これは任意のイテラブル (文字列だけでなく) に対しても機能しますが、長さが 3 で割り切れない文字列を切り捨てます。元の動作を回復するには、itertools.izip_longest( itertools.zip_longestin py3k)を使用できます。

>>> import itertools
>>> [''.join(x) for x in itertools.izip_longest(*[iter(a)]*3, fillvalue=' ')]
['345', '674', '655']

もちろん、これらの後者の回答の一般化を改善するには、読みやすさという点で少しお金を払います...

于 2013-03-06T17:39:12.350 に答える