2012-01-15 20 views
3

各項目が特定の値(ここでは0)に設定されているリストを取得したいと思います。私はこのコードを以下のコードで解決しましたが、それはとても面倒です。確かに良い方法がありますか?リストをPythonの特定の値に初期化する方法

maxWidths = map(lambda x: 0, range(0, maxCols)) 

答えて

7

1要素リストに必要な長さを掛けます。上記で

maxWidths = [0] * maxCols 

、リストの全ての要素が同じオブジェクトになります。 変更可能な値(ディクテーションやリストなど)のリストを作成しているときに、別のものにする必要がある場合は、質問で行ったようにmapを使用するか、同等のリストの理解を書いてください:

[[] for dummy in range(100)] 
+0

私は**知っていた** "パイソン"の方法があるだろう!ありがとう。 – nickf

+1

@nickf結果リストには同じオブジェクトへの 'maxCols'参照があります。変更可能なオブジェクトでは、これはまったく異なる(ほとんど嫌悪されない)セマンティクスにつながります。 – delnan

+0

さらに明確にするために、 '[[]] * maxCols'リストは実際には同じリストへのmaxCols" references "を含んでいます。 –

関連する問題