2016-05-18 13 views
0

現在、リスト内の残りの要素をオーバーライドして、指定した要素でリストを埋める方法を理解しようとしています。与えられたリストのすべての要素を1つの要素だけで完全に置き換えます。 リスト内のすべての要素を上書きして、リストをゼロで埋めることはできますか?リスト値の要素を置き換えてすべての要素を削除する

= [1,2,3,4,5]リストが値= [0,0,0,0,0]

されており、それを作るための方法がありますリストからすべての要素を削除する方法はありますか? 値= [1,2,3,4,5]の場合は、値を[]にしますか?

答えて

2
>>> x = [1, 2, 3] 
>>> x[:] = [0] * len(x) 
>>> x 
[0, 0, 0] 

説明:左側は、すべてのインデックス上のスライスであるスライスに割り当てることは許され、そして右側は、繰り返しエレメントのリストを生成するための素晴らしい構文です。

関連ノートで

、今までにこれをしない:

>>> a = [[0] * 5] * 5 
>>> a 
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 

を、このようなことが起こりますので:

>>> a[0][0] = 3 
>>> a 
[[3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0]] 
+0

私はそれが好き!スムーストリック@Alex Hall – vikingben

+0

リストのインデックス値は整数でなければならない?? – expertinthemaking22

+0

@ expertinthemaking22インデックスは整数で、値(リストの内容)は何でもかまいません。 –

-1

、1つを持つリスト内のすべての要素を置換するには値:

values = [0] * len(values) 

これは、 0をリストの長さを構成するのに必要な回数だけ入力し、これをvaluesに割り当てます。 はありませんこのメソッドは、カスタムクラスのような変更可能なオブジェクトで使用してください!


空のリストに名前を割り当てるには、リストを空にする:なし機能付き

values = [] 
+0

'values = ...'は元のリストオブジェクトを変更しません。 – vaultah

+0

いいえ、しかし、名前が 'values'を空のリストで上書きします。これは、OPが求めているようです。最終的な結果は同じです。私が間違っている場合は私を修正してください。 –

+0

違いは、あなたのコードの前に 'values_copy = values'を実行すると、' values_copy'は元のリストのままになります。 –

0
  1. リスト内包 - ちょうど交換要素を。
  2. clear()を使うか、新しい空のリストで上書きするだけです。

    x = [1, 2, 3] 
    [0 for elem in x] 
    x.clear() 
    
関連する問題