我已经为我的CS类设置了一个小任务,在这个任务中,我必须用Python编写一个方法来删除列表中主索引位置的项,直到索引50。在
我尝试生成如下所示的方法,但是当我试图在方法末尾打印列表时,它应该返回一个删除了主索引位置的值的列表,但是它只是返回完整的列表(数字1到50)。在
我的职能:
def listDelete(list):
for i in list:
if i %2 != 0 & i % 3 != 0:
del list[i]
return list
我用以下方法调用函数:
^{pr2}$我对python非常陌生,如果这是一个非常简单的修复,或者是一个明显的错误,我深表歉意,但任何帮助都将不胜感激!在
您应该使用
List
类的pop
方法,而不是del
。为了使用pop,您需要list元素的索引,您可以使用enumerate
在for循环中获取该索引:结果:
^{pr2}$也就是说,你的逻辑并没有找到所有的素数指数,例如25不是素数,但它不能被2或3整除。在
这个怎么样?在
你可以称之为:
^{pr2}$您编写的代码有两个主要问题。Python作为逻辑和位与运算符,}。你可能想了解一下区别。在
and
和{同样,你在一个列表上循环,并在循环中更改同一个列表,这不是一个好主意(take a look at the last example in this section)。与其更改输入列表,不如创建一个包含非素数的新列表并返回新列表?在
最后一件事,在这个问题中,你说你想删除素数索引的值,但是你检查的是列表中的值,而不是索引(我说“素数”是因为你不是真正检查素数,但我想你知道这一点)。在
相关问题 更多 >
编程相关推荐