重新安置所有的平均值

时间:2016-10-24 12:50:45

标签: python function

我应该删除info中找到的任何平均值,并将它们附加到第二个参数house中。必须返回对收到任何平均值的列表的引用。如果没有给出第二个参数,则应创建并返回所有重新定位的evens的列表。

到目前为止,这是我的代码。

def relocate_even(info,house):
    house=[]
    new_list=[]
    for x in info:
        if x%2==0:
            info.remove(x)
            if len(house)>0:
                house.append(x)
                return house
            if len(house)<=0:
                new_list.append(x)
                return new_list       

我在房屋功能空的时候遇到了麻烦。我为此编写了代码,但它给了我一个错误。

1 个答案:

答案 0 :(得分:0)

在迭代迭代时不要修改迭代。也就是说,不要在info块中更改for x in info:。而是创建一个新列表,然后设置等于它的信息。您可以为参数指定一个默认值,这允许调用不显式设置该值。

def relocate_even(info, house=None):
    new_house = []
    new_info = []
    for x in info:
         if x%2:
             new_info.append(x)
         else:
             new_house.append(x)
    info[:] = new_info
    if house is None:
        return new_house
    else:
        house[:] = house + new_house
        return house