Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 3.x 从python数组中删除所有元素_Python 3.x - Fatal编程技术网

Python 3.x 从python数组中删除所有元素

Python 3.x 从python数组中删除所有元素,python-3.x,Python 3.x,1) 我正在研究的问题是: 为名为removeAll的函数编写一个算法,该函数接受3个参数:数组类型的数组、数组中元素的计数和值。与我们在类中讨论的remove方法一样,通过元素计数的元素存储为None。此函数应删除所有出现的值,然后向下移动其余数据。然后,应将数组中最后填充的元素设置为“无”。然后,该函数返回剩余的“有效”(即未删除)数据元素的计数。此功能应“手动”进行删除,而不应使用删除方法 2) 下面是我认为对这个问题有效的方法,但它似乎效率低下且重复。有什么办法可以简化它吗 ''' “”

1) 我正在研究的问题是: 为名为removeAll的函数编写一个算法,该函数接受3个参数:数组类型的数组、数组中元素的计数和值。与我们在类中讨论的remove方法一样,通过元素计数的元素存储为None。此函数应删除所有出现的值,然后向下移动其余数据。然后,应将数组中最后填充的元素设置为“无”。然后,该函数返回剩余的“有效”(即未删除)数据元素的计数。此功能应“手动”进行删除,而不应使用删除方法

2) 下面是我认为对这个问题有效的方法,但它似乎效率低下且重复。有什么办法可以简化它吗

'''

“”“

“”“

“”“

“”“


“”“

您可以根据值是否等于孔值对列表进行排序

l = [8, 'N', 24, 16, 1, 'N']
sorted(l, key=lambda x: x == 'N')
输出:

[8, 24, 16, 1, 'N', 'N']
如果需要
None
而不是输出中的孔值,请使用列表理解,然后首先基于None进行排序

l = [i if i != 'N' else None for i in [8, 'N', 24, 16, 1, 'N']]
sorted(l, key=lambda x: x == None)
[8, 24, 16, 1, None, None]
然后剩下的就是加上计数,你只需要计算有多少元素是无的,然后从你的输入参数中减去

def myremove(mylist, elements, val):
    ret_list = sorted([i if i != val else None for i in mylist], key=lambda x: x == None)
    return ret_list, elements - ret_list.count(None)

@L3viathan-谢谢,我只是想测试一下,在将其添加到我的答案之前,在排序之前还是之后这样做更好
[8, 24, 16, 1, 'N', 'N']
l = [i if i != 'N' else None for i in [8, 'N', 24, 16, 1, 'N']]
sorted(l, key=lambda x: x == None)
[8, 24, 16, 1, None, None]
def myremove(mylist, elements, val):
    ret_list = sorted([i if i != val else None for i in mylist], key=lambda x: x == None)
    return ret_list, elements - ret_list.count(None)