Re: [問題] list.pop() 問題

看板Python作者 (大雪崩)時間14年前 (2010/11/23 14:47), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《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

11/23 23:53, , 1F
list = filter( lambda tp : tb[0] == 1 , list )
11/23 23:53, 1F

11/23 23:53, , 2F
filter也不錯~
11/23 23:53, 2F
文章代碼(AID): #1CwsENu- (Python)
討論串 (同標題文章)
文章代碼(AID): #1CwsENu- (Python)