口译员忽略了我的python代码中的部分功能

时间:2019-06-15 10:52:43

标签: python function

任务是创建Modify_list(l)函数,该函数从列表中删除奇数,并将列表中的偶数除以2,而没有余数。

#My code
lst = [1, 2, 3, 4, 5, 6]
def modify_list(l):
  for k in l:
    if k%2 == 1:
      l.remove(k)
    elif k%2 != 1:
      l.remove(k)
      l.append(k//2)
  return l
print(modify_list(lst))


#This is how function is expected to work:
lst = [1, 2, 3, 4, 5, 6]
print(modify_list(lst))  # None
print(lst)               # [1, 2, 3]
modify_list(lst)
print(lst)               # [1]
#My code returns:
print(modify_list(lst))   #[2, 4, 6] instead of none or at least [1, 2, 3]

因此,省略了部分Elif代码!我不明白为什么

1 个答案:

答案 0 :(得分:0)

您需要创建列表的副本。但是,以下语法应会为您提供所需的结果,并且更具可读性:

def modify_list(l):
    return [value // 2 for value in l if value % 2 == 0]

您基本上是在使用列表理解来创建一个新列表,其中包含将偶数减半的值。