[问题] 删除元素的问题

楼主: beebearwm (beebear)   2018-10-03 08:46:56
最近刚学习python,遇到一些习题卡住了
问些基本的问题请见谅
假设要定义一个Remove(T,E)的方法,在T阵列里的E元素都要被移除
例子: Remove((0, 1, 2, 1, 3), 2))
>> (0,1,1,3)
Remove((), 1)
>> ()
且只要用lambda,filter或者map这三种函数实现的话,要怎么写比较好呢
附上我目前的写法,虽然是错的QQ
def Remove(T, E):
f=lambda x: True if x not in E else False
return filter(f, T)
还有我在跑程式的时候,有时会出现<filter object at 0x000001C1E0347FD0>
类似这样的结果,请问可能是哪里出错了呢
感谢!
作者: Kazimir (Kazimir)   2018-10-03 08:50:00
很想说差集 科科
楼主: beebearwm (beebear)   2018-10-03 08:58:00
E只有一个元素而已不是阵列,题目规定只能用那3个函数Q
作者: handsomeLin (DoGLin)   2018-10-03 09:33:00
应该是return filter(T, lambda x: True if x != E else False)
作者: mikapauli (桜花)   2018-10-03 09:33:00
Remove = lambda T, E: tuple(filter(E.__ne__, T))
作者: ckc1ark (伪物)   2018-10-03 09:35:00
f=lambda x: x!=E 就可以了
作者: handsomeLin (DoGLin)   2018-10-03 09:36:00
return filter(T, lambda x: x!=E) 其实这样就好了耍蠢了干又蠢了 list跟lambda对调
楼主: beebearwm (beebear)   2018-10-03 09:46:00
谢谢你!!他还是显示filter object..,但我刚让他转型成list后就可以了,感谢!!!
作者: thefattiger (LT)   2018-10-03 15:13:00
filter,map,reduce返回的都是generator

Links booklink

Contact Us: admin [ a t ] ucptt.com