2011-11-07 2 views
1

私はPythonでリストを持っています。私はそれがどれくらいの期間か正確には分かりませんが、15項目以下であることがわかります。リストの最小長を設定しますか?

私はそれを正確に15の項目に長さを加えて、追加する必要があるすべての項目に空の文字列を追加したいと思います。

これをPythonで効率的に行う方法はありますか?

私は期待していた:

myarr = myarr[:15] 

はうまくいくかもしれないが、それはしていません。

現在、私は持っている:

if len(myarr) < 15: 
    for i in range(15 - len(myarr)): 
     myarr.append('') 

どれよりコンパクトな提案ですか?これは何度も呼び出された場合は、一度ALL_EMPTYリストを初期化し、その後、

padded = (source + [''] * MAX_LEN)[:MAX_LEN] 

:純粋なスライス(LENになしコール)を使用するには

myarr.extend([""]* (15 - len(myarr))) 
+0

あなたはパディング付きリストのように機能するカスタムクラスを書くことができます。 –

答えて

9
myarr += [""] * (15 - len(myarr)) 
+3

+1。これは 'len(myarr)<15 'のテストを必要としません。なぜなら' * '繰り返し演算子は負の繰り返し回数の空リストを返すからです。 –

+0

文字列が不変であるため、これが機能することに注意してください。 –

+0

パーフェクト - コンパクトで簡単な、ちょうど私が探していたもの!ありがとう! – Richard

4

モジュールスコープで次に、:

padded = (source + ALL_EMPTY)[:MAX_LEN] 
関連する問題