专业购物网站,网站备案要多久时间,seo站长工具推广平台,怎样在网站上做超链接从列表中删除满足一定条件的元素。
如#xff1a;删除一个列表中长度为0的元素#xff0c;或者删除列表中同时是2和3的倍数的元素。
做过高级语言编程的人想当然的会认为“这很简单”#xff0c;可以如下面的方式来实现#xff1a; for i in listObj:if(...):listObj.rem…从列表中删除满足一定条件的元素。
如删除一个列表中长度为0的元素或者删除列表中同时是2和3的倍数的元素。
做过高级语言编程的人想当然的会认为“这很简单”可以如下面的方式来实现 for i in listObj:if(...):listObj.remove(i)看下一个小例子和结果a [1, 2, 3, 12, 12, 5, 6, 8, 9]
for i in a:if i % 2 0 and i % 3 0:a.remove(i)
print(a)运行结果E:\Program\Pythond.py
[1, 2, 3, 12, 5, 8, 9]看到了吗
12竟然没有被删除!!!(这是Python列表操作的一个非常容易出错的地方)要实现预期的目标其实还是有不少变通方法的比如 a [1, 2, 3, 12, 12, 5, 6, 8, 9]
b a[:]
for i in a:if i % 2 0 and i % 3 0:b.remove(i)
a b
print(a)运行结果E:\Program\Pythond.py
[1, 2, 3, 5, 8, 9]看看现在达到预期的目标了吧。从上面的代码不难发现我们构建了列表b复制了列表a中的所有元素通过遍历a来删除b中的元素最后把a指向b。我还发现了另一种方法自认为挺不错的--------------------列表推导式 a [what, , , some, , time]
a [i for i in a if len(i) 0]
print(a)b [1, 2, 3, 12, 12, 5, 6, 8, 9]
b [i for i in b if not(i % 3 0 and i % 2 0)]
print(b)
运行结果E:\Program\Pythond.py
[what, some, time]
[1, 2, 3, 5, 8, 9]相比较之下您认为
哪种写法更好呢从性能上来看可能效率都不是太好但是从写法简洁上来看我是更喜欢后者!