作者cakewalks (大雪崩)
看板Python
标题Re: [问题] list.pop() 问题
时间Tue Nov 23 14:47:47 2010
※ 引述《jimmylin212 (JimmyG)》之铭言:
: 想请一个程式片段的错误
: list = [ [1,a],[1,b],[2,c],[2,d],[3,e],[4,f],[5,g] ]
: for i in range(0, len(list)):
: if list[i][0] == 1:
: list.pop(i)
: 当我执行这段程式的时候最後结束都会 index out of range
: 最後大概会有一两个长度的误差,就是会读到空的地方
: 想请问会出现这种问题是为什麽呢?
: 另外要怎麽解决呢?
我想到的解决方法是 list comprehension:
new_list = [x for x in list if x[0] != 1]
如果你坚持不要建立新的 list,那麽可以考虑用 dict:
dictionary = {'a': 1, 'b': 1, 'c': 2}
for k in dictionary.keys():
if dictionary[k] == 1:
del dictionary[k]
---
http://descriptor.blogspot.com/search/label/Programming
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.169.99.241
1F:推 timTan:list = filter( lambda tp : tb[0] == 1 , list ) 11/23 23:53
2F:→ timTan:filter也不错~ 11/23 23:53