我有一个清单:
a = [1,3,5,657,78,43,7,2,123, 43, 321, 4531]
我想从此列表中删除 1 个大于 100 的随机整数。如何执行此操作?
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]
首先,获取超过 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]
如果你的列表中有很多大于 100 的数字,你可以在列表的开头和结尾之间选择一个索引,如果它大于 100,则将其删除,否则选择另一个。
如果你没有很多优于 100 的元素,你应该将优于 100 的元素保存在一个数组中,随机选择其中一个,然后从原始数组中删除它。
创建超过 100 的整数的索引列表,随机选择其中一个索引,然后从列表中删除该索引