【发布时间】:2015-06-23 20:14:47
【问题描述】:
rmNegative(L) 从list L 中删除负数,假设仅包含数字元素。 (修改 L;不创建新列表。)
当使用 while 循环时,我将如何处理这个问题?我一遍又一遍地尝试编码,我得到的只是一个永无止境的循环..
def rmNegatives(L):
pos=len(L)-1
while pos>-1:
pos=pos
if pos<len(L)-1:
pos=pos
if L[pos]>0:
L[:]=L[:]
pos=len(L)-2
elif L[pos]<0:
L[:]=[L[pos]]+L[0:]
L[:]=L[1:]
pos=len(L)-1
elif pos==len(L)-1:
pos=pos
if L[pos]<0:
L[0:]=L[0:pos]
pos=len(L)-1
elif L[pos]>0:
L[:]=L[:]
pos=len(L)-2
rmNegatives([-25,31,-10,23,45,-2])
编辑** 感谢您的回复。我的代码不包含任何形式的删除或索引的原因是因为我被限制使用它们(如果不使用它们会很好,但是......)
【问题讨论】:
-
您的列表对我不起作用,没有显示代码。你可以把你的代码放在你的帖子中。
-
我编辑了它,当然等待批准。
-
看起来第一个块是评论?我在第一次编辑时错过了
'''。也许最好只显示将运行的代码? -
您希望我们调试您现有的代码吗?我真的不确定大部分是试图做什么,所以很难说哪里出了问题。例如,您希望
pos = pos或L[:] = L[:]做什么?为什么pos=len(L)-2?
标签: python list while-loop negative-number