45

配列全体を消去して、項目を何も残さないようにするにはどうすればよいですか?

これを実行して、新しい値 (100 個の浮動小数点数の新しいセット) を格納し、最小値を見つけられるようにしたいと考えています。

現在、私のプログラムは、前のセットがまだそこにある状態で自分自身を追加しているため、考える前にセットから最小値を読み取っています。ちなみに私は .append を使っています。

4

4 に答える 4

56

listarrayは異なるクラスであることに注意してください。できるよ:

del mylist[:]

これにより、実際に既存のリストが変更されます。David の答えは、新しいリストを作成し、それを同じ変数に割り当てます。どちらが必要かは状況によって異なります (たとえば、他の変数が同じリストへの参照を持っていますか?)。

試す:

a = [1,2]
b = a
a = []

a = [1,2]
b = a
del a[:]

印刷aしてb毎回違いを確認してください。

于 2010-08-17T04:03:08.187 に答える
34

それは簡単です:

array = []

array空のリストに設定されます。(ちなみに、それらは Python ではリストと呼ばれ、配列ではありません)

それでも問題が解決しない場合は、質問を編集して、問題を示すコード サンプルを含めてください。

于 2010-08-17T04:02:28.997 に答える
7

はい、配列は存在しますが、次のようなものに関しては、リストと同じ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]

于 2010-08-17T05:32:17.417 に答える
1

「どこかで 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'))
于 2010-08-17T05:46:22.763 に答える