リストの内包表記を使用して三角形のリストを作成する方法?

kakkeuno:

何が次の形式でリストを作成する最も簡単な方法は次のようになります。

[[0],
 [0,0],
 [0,0,0],
 [0,0],
 [0]]

質問は、リストあたりの元素の量を表して反復変数を逆にする方法ほとんどですので、これは、n = 3のためになります。

例えば、以下のリスト内包:

[[0]*(i+1) for i in range(3)]

作成します。

[[0],
 [0,0],
 [0,0,0]]

私が欲しいものを達成するために気の利いた方法はありますか?

kaya3:

使用して気の利いた方法があるabs関数は:

>>> n = 3
>>> [[0] * (n - abs(n - i)) for i in range(1, 2*n)]
[[0],
 [0, 0],
 [0, 0, 0],
 [0, 0],
 [0]]

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=27643&siteId=1