我有一个清单:
a = [1,3,5,657,78,43,7,2,123, 43, 321, 4531]
我想从此列表中删除大于100的1个随机整数。如何执行此操作?
答案 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的整数索引列表,随机选择其中一个索引,然后从列表中删除该索引