Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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函数不删除所有偶数,只删除部分偶数_Python - Fatal编程技术网

Python函数不删除所有偶数,只删除部分偶数

Python函数不删除所有偶数,只删除部分偶数,python,Python,您好,我的函数应该按照升序对奇数进行排序,同时将偶数保留在其原始位置。但是,当我用这个sort_数组([5,3,2,8,1,4])测试它时。我的结果是[1,3,2,8,5,4,8]。这是因为当我检查偶数时,8没有被删除,但我不知道为什么。将您想要的结果添加到描述中。没有阅读您的问题,只是一个粗略的猜测:可能是因为您正在对正在迭代的列表调用remove?您是否尝试对副本进行迭代,即对源数组[:]:中的每个副本进行迭代?这是否回答了您的问题? def sort_array(source_array)

您好,我的函数应该按照升序对奇数进行排序,同时将偶数保留在其原始位置。但是,当我用这个sort_数组([5,3,2,8,1,4])测试它时。我的结果是[1,3,2,8,5,4,8]。这是因为当我检查偶数时,8没有被删除,但我不知道为什么。

将您想要的结果添加到描述中。没有阅读您的问题,只是一个粗略的猜测:可能是因为您正在对正在迭代的列表调用
remove
?您是否尝试对副本进行迭代,即对源数组[:]:中的每个副本进行迭代?这是否回答了您的问题?
def sort_array(source_array):
    dicty = {}
    for each in source_array:
        if (each%2) == 0 or each == 0:  
            dicty.setdefault(source_array.index(each),each)

    for each in source_array:
        if (each%2) == 0 or each == 0:              
            source_array.remove(each)  
    source_array.sort()
    
  
    for each in dicty:
        source_array.insert(each,dicty[each])
    return source_array