我只需要一个从输入列表中删除零的函数
def no_zero(a):
pos=0
while (pos+1)<=len(a):
if a[pos] == "0":
a.remove[pos]
pos= pos +1
return a
print(no_zero([0,1,0,2,0,3]))
Run Code Online (Sandbox Code Playgroud)
我应该得到1,2,3的输出,但是它会跳过正确的返回a。关于为什么的任何指示?干杯。
我在解决这个问题时遇到了一些困难
假设我有一个自定义视图,其中包含要由另一个类使用的协议(视图控制器)
protocol MyViewDelegate : AnyObject {
func parentNeedsToTakeAction(sender: MyView)
}
class MyView : UIView {
...
weak var delegate : MyViewDelegate?
....
func initiateCallBack(){
delegate?.parentNeedsToTakeAction(self)
}
}
Run Code Online (Sandbox Code Playgroud)
并且视图控制器符合该视图的委托
在将自身传递回VC之前,我知道VC拥有对视图的强引用,而视图仅拥有对VC的弱引用(通过委托)。
但是之后会发生什么呢?该视图的ARC现在是2还是仍然是1,VC是否拥有对该视图的1或2个强引用?
如果在VC中我继续采取措施,然后从其视图中删除发件人(子视图),则子视图是否会从内存中重新分配?