1

float のリストを並べ替えて、すべての値 = 0 を取り出し、リストの要素を float として保持したいと考えています。これは可能ですか?


試してみa[:] = [x for x in a if x != 0]ましたが、これにより次のエラーが発生します。

 a[:] = [x for x in a if x != 0]
TypeError: 'float' object is not iterable

それで、試してみa[:] = [x for x in range(len(a)) if x != 0]ましたが、新しいエラーが発生しました:

 a[:] = [x for x in range(len(a)) if x != 0]
TypeError: object of type 'float' has no len()

これについて別の方法は何ですか?順序を維持する必要はなく、削除したい要素のインデックスは必要ありません。

4

3 に答える 3

0
blacklist = [0]
blacklist = set(blacklist)
myList = [e for e in myList if int(e) not in blacklist]

さらに良いことに、ブラックリストを のコレクションにしますfloat

blacklist = [0]
blacklist = set([float(i) for i in blacklist])
myList = [e for e in myList if int(e) not in blacklist]
于 2013-07-12T13:42:06.450 に答える