-2

私はリストを持っています:

a = [1,3,5,657,78,43,7,2,123, 43, 321, 4531]

このリストから 100 より大きいランダムな整数を 1 つ削除したいのですが、どうすればよいですか?

4

4 に答える 4

8
In [55]: a
Out[55]: [1, 3, 5, 657, 78, 43, 7, 2, 123, 43, 321]

In [56]: a = [1,3,5,657,78,43,7,2,123, 43, 321, 4531]

In [57]: a.pop(random.choice([i for i,num in enumerate(a) if num>100]))
Out[57]: 4531

In [58]: a
Out[58]: [1, 3, 5, 657, 78, 43, 7, 2, 123, 43, 321]
于 2012-11-19T20:57:37.223 に答える
3

まず、100を超えるすべての要素のインデックスのリストを取得します。

dels = [i for i, val in enumerate(a) if val > 100]

次に、そのリストから1つを選択します。

index = random.choice(dels)

次に、元のリストからそのインデックスを削除します。

del a[index]

すべてを一緒に入れて:

>>> a = [1,3,5,657,78,43,7,2,123, 43, 321, 4531]
>>> dels = [i for i, val in enumerate(a) if val > 100]
>>> index = random.choice(dels)
>>> del a[index]
>>> a
[1, 3, 5, 657, 78, 43, 7, 2, 43, 321, 4531]
于 2012-11-19T21:07:02.483 に答える
2

リストに 100 より大きい数字が多数ある場合は、リストの最初と最後の間で 1 つのインデックスを選択し、100 より大きい場合は削除し、そうでない場合は別のインデックスを選択します。

100 を超える項目があまりない場合は、100 を超える要素を配列に保存し、そのうちの 1 つをランダムに選択してから、元の配列から削除する必要があります。

于 2012-11-19T20:58:36.787 に答える
1

100を超える整数のインデックスのリストを作成し、それらのインデックスの1つをランダムに選択してから、そのインデックスをリストから削除します

于 2012-11-19T20:58:16.913 に答える