配列全体を消去して、項目を何も残さないようにするにはどうすればよいですか?
これを実行して、新しい値 (100 個の浮動小数点数の新しいセット) を格納し、最小値を見つけられるようにしたいと考えています。
現在、私のプログラムは、前のセットがまだそこにある状態で自分自身を追加しているため、考える前にセットから最小値を読み取っています。ちなみに私は .append を使っています。
list
とarray
は異なるクラスであることに注意してください。できるよ:
del mylist[:]
これにより、実際に既存のリストが変更されます。David の答えは、新しいリストを作成し、それを同じ変数に割り当てます。どちらが必要かは状況によって異なります (たとえば、他の変数が同じリストへの参照を持っていますか?)。
試す:
a = [1,2]
b = a
a = []
と
a = [1,2]
b = a
del a[:]
印刷a
してb
毎回違いを確認してください。
それは簡単です:
array = []
array
空のリストに設定されます。(ちなみに、それらは Python ではリストと呼ばれ、配列ではありません)
それでも問題が解決しない場合は、質問を編集して、問題を示すコード サンプルを含めてください。
はい、配列は存在しますが、次のようなものに関しては、リストと同じdel
ですappend
。
>>> from array import array
>>> foo = array('i', range(5))
>>> foo
array('i', [0, 1, 2, 3, 4])
>>> del foo[:]
>>> foo
array('i')
>>> foo.append(42)
>>> foo
array('i', [42])
>>>
注目に値する違い: 配列を作成するときに型を指定する必要があり、arr[i] = expression
またはarr.append(expression)
を実行するときに C 型と Python 型の間で変換する余分な時間を犠牲にしてストレージを節約します。lvalue = arr[i]
「どこかで 100 個の float を取得しています。最小値を見つける前に、それらを配列またはリストに入れる必要がありますか?」
回答: いいえ、somewhere
イテラブルの場合は、次のようにする代わりに:
temp = []
for x in somewhere:
temp.append(x)
answer = min(temp)
あなたはこれを行うことができます:
answer = min(somewhere)
例:
answer = min(float(line) for line in open('floats.txt'))