如何从列表中删除大于python中特定值的随机整数?

时间:2012-11-19 20:55:20

标签: python list random integer

我有一个清单:

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

我想从此列表中删除大于100的1个随机整数。如何执行此操作?

4 个答案:

答案 0 :(得分:7)

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]

答案 1 :(得分:3)

首先,获取100以上所有元素的索引列表:

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,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]

答案 2 :(得分:2)

如果您的列表中个数字优于100,您只需在列表的开头和结尾之间选择一个索引,如果它优于100,则删除它,否则选择另一个之一。

如果你没有多少项优于100,你应该在数组中保存优于100的元素,随机选择其中一个,然后从原始数组中删除它。

答案 3 :(得分:1)

创建一个超过100的整数索引列表,随机选择其中一个索引,然后从列表中删除该索引