Python 如果小于x,则从中弹出值
我有一系列字典Python 如果小于x,则从中弹出值,python,arrays,Python,Arrays,我有一系列字典 for row in array: if row['val'] < 11: array.pop(array.index(row)) 对于数组中的行: 如果行['val']
for row in array:
if row['val'] < 11:
array.pop(array.index(row))
对于数组中的行:
如果行['val']<11:
array.pop(array.index(行))
其中,如果字典的某个值低于某个阈值,我将尝试从数组中删除字典。它可以工作,但仅适用于数组中的一个项
我现在的解决方案是运行for语句两次,然后删除额外的值。我该怎么做
[el for el in array if test_to_be_preserved(el)]
其中,test\u将被保存
是一个函数,该函数返回的True
ifel
应该被保留,而False
ifel
应该从数组中删除
或者,如果您不介意更改原始数组中元素的顺序:
i = 0
while i < len(array):
el = array[i]
if should_remove(el):
array[i] = array.pop()
else:
i += 1
i=0
而i
其中,test\u将被保存
是一个函数,该函数返回的True
ifel
应该被保留,而False
ifel
应该从数组中删除
或者,如果您不介意更改原始数组中元素的顺序:
i = 0
while i < len(array):
el = array[i]
if should_remove(el):
array[i] = array.pop()
else:
i += 1
i=0
而i
你。相反,请使用:
还有,让我们澄清另一件事。python它有列表 谢谢你。相反,请使用:
还有,让我们澄清另一件事。python它有列表 您可以使用:
您可以使用:
@ Dylansq:我的荣幸。“迪兰斯克:我的荣幸。是的,这是一个有用的技巧,从向量中删除O(1)元素(我经常使用它与STD C++向量)如果你不介意元素的顺序。是的,它是一个有用的技巧,从矢量中删除O(1)元素(我经常使用它与STD C++向量)如果你不介意元素的顺序。
>>> nums = [random.randint(1, 101) for x in xrange(20)]
>>> nums
[75, 101, 21, 69, 44, 98, 50, 45, 63, 73, 8, 44, 54, 42, 66, 68, 98, 56, 7, 36]
>>> (lambda x, l: filter(lambda y: y >= x, l))(25, nums)
[75, 101, 69, 44, 98, 50, 45, 63, 73, 44, 54, 42, 66, 68, 98, 56, 36]