作者peterwolf (pw)
看板Python
标题[问题] 从 list 中移除空字串项目
时间Fri Sep 17 12:49:49 2010
请教各位先进,
我手上有一个 list ,内容大概像这样
[1, 2, 3, 4, 1, 1, 1, 1, '', '', '', '', '', '', '', '']
我写了一个小回圈,想要把里面的空字串项目 ('') 移除,让这个
list 变成 [1, 2, 3, 4, 1, 1, 1, 1] ,内容如下:
lst = [1, 2, 3, 4, 1, 1, 1, 1, '', '', '', '', '', '', '', '']
for i in lst:
if i == '':
lst.remove(i)
但结果却是[1, 2, 3, 4, 1, 1, 1, 1, '', '', '', '']!
很尴尬地,它只删了一半的空字串项目。
能不能请教一下,这是什麽原因呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.36.164
2F:→ ypcat:可以用 [i for i in lst if i!=''] 09/17 13:01
3F:→ peterwolf:谢谢你! :) 09/17 13:10
4F:推 apua:如果空字串都在後面,可以不用for回圈,只要找出第一个空字串 09/17 13:38
5F:→ apua:的位置..... lst = lst[:lst.index('')] 09/17 13:38
6F:推 SMUGEN:应该是因为边iterate一边改变item的原因吧 09/17 14:24
7F:→ yjc1:filter(lambda x: x!='',lst),但list comprehension较一般化 09/17 21:56
8F:→ apua:del lst[lst.index(''):] 09/18 00:17