Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果小于x,则从中弹出值_Python_Arrays - Fatal编程技术网

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
if
el
应该被保留,而
False
if
el
应该从
数组中删除

或者,如果您不介意更改原始数组中元素的顺序:

  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
if
el
应该被保留,而
False
if
el
应该从
数组中删除

或者,如果您不介意更改原始数组中元素的顺序:

  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]