9

リスト (range(r) を使用して作成) を文字列のリストに変更したいだけですが、文字列の長さが 1 の場合は、先頭に 0 を追加します。を使用してリストを文字列に変換する方法を知っています

ranger= map(str,range(r))

しかし、それらの文字列の長さも変更できるようにしたいと考えています。

入力:

r = 12
ranger = range(r)
ranger = magic_function(ranger)

出力:

print ranger
>>> ['00','01','02','03','04','05','06','07','08','09','10','11']

可能であれば、私の最終的な目標はこれです:私はフォームの行列を持っています

numpy.array([[1,2,3],[4,5,6],[7,8,9]])

最初の 2 文字が行、2 番目の 2 文字が列、3 番目の 2 文字が '01' で、これらのそれぞれの行列 [行、列] を持つような文字列のセットを作成したいと考えています。したがって、上記の値は次のようになります。

000001    since matrix[0,0] = 1
000101    since matrix[0,1] = 2
000101    since matrix[0,1] = 2
000201
000201
000201
etc
4

4 に答える 4

14

zfillあなたが望むことを正確に行い、さまざまなタイプの文字列フォーマットのように難解なミニ言語を理解する必要はありません。そのための場所がありますが、これは既製の組み込みツールを使用した単純な作業です。

ranger = [str(x).zfill(2) for x in range(r)]
于 2013-07-10T18:40:38.030 に答える
5

これが私の見解です:

>>> map('{:02}'.format, xrange(12))
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11']

理解を深めるために、フォーマット文字列の構文について読んでみてください。

于 2013-07-10T18:09:31.190 に答える
3

文字列フォーマットを使用:

>>> sr = []
>>> for r in range(11):
...     sr.append('%02i' % r)
... 
>>> sr
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10']
于 2013-07-10T18:09:52.950 に答える