![](/img/trans.png)
[英]In Python, variables inside if conditions hide the global scope even if they are not executed?
[英]Global and local scope variables in Python; Delete item inside from array inside the loop
这是代码:
def deleteObj(array):
for i in range (0, len(array)):
if array[i]:
if type(array[i]) == int or type(array[i]) == float:
if int(array[i]) == 0:
del array[i]
elif not array[i]:
break
print(array)
所以,最后它会不加改变地打印整个数组。 我已经心碎了 xDxDxD
PS 在函数内部发布之前,我无法将数组设为全局变量
你有两个问题:
if array[i]:
当array[i]
为None
时为假,当它为0
时也为假。array
中删除,它会导致迭代list index out of range
您需要明确检查该项目是否为None
,并在array
副本上使用remove
以便您可以删除项目。 您也可以跳过对检查int
或float
和铸造int
,他们是没有必要的
def deleteObj(array):
for item in list(array):
if item is not None:
if item == 0:
array.remove(item)
else:
break
print(array)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.