我想创建一个函数,返回奇数位置列表元素或列表的负元素。
我的解决方案适用于第一个断言,但第二个产生AssertionError,因为返回[-1,-2,1]而不是[-1,-2]。有什么建议吗?
def solution(input):
output = []
for item in input:
if item < 0:
output.append(item)
elif not item % 2 == 0:
output.append(item)
return output
assert solution([0,1,2,3,4,5]) == [1,3,5]
assert solution([1,-1,2,-2]) == [-1,-2]
答案 0 :(得分:5)
您希望奇数位置上的数字,但您的%
检查是检查列表中的实际值而不是它们的位置。
尝试使用enumerate
在迭代列表时获取索引值:
def solution(input):
output = []
for ix, item in enumerate(input):
if item < 0 or ix % 2 != 0:
output.append(item)
return output
答案 1 :(得分:0)
另外,为了完整起见,您可以考虑将其添加到现有代码中:
if any(i < 0 for i in output):
return [i for i in output if i < 0]
,因为它测试是否存在负数并且仅返回那些负数。然而,从我的观点来看,HumphreyTriscuit的答案是更好的解决方案。
答案 2 :(得分:0)
定义解决方案功能的一行:
document.getElementById("box").removeChild(imgC);