Re: [問題] 刪除不連續數字

看板Python作者 (juso)時間8年前 (2017/05/02 13:04), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《m87dd05 (八八里阿巴)》之銘言: : 請問各位假使今天我有一串數字存入list中 : 可能是 ['1','2','3','50','4'] : 或['48','5','6','7','8'] : 即list中可能會出現一兩個非連續的數字 : 請問要怎麼把非連續的數字剔除阿? stackoverflow有相關的處理方法 http://tinyurl.com/l6ngk5t 試了程式碼是可行的,只是我看不懂程式碼,程度不夠。 from operator import itemgetter from itertools import groupby data = [1,2,3,50,4] for k, g in groupby(enumerate(data), lambda x:x[0]-x[1]): #print (map(itemgetter(1), g)) print (list(map(itemgetter(1), g))) for k, g in groupby(enumerate(sorted(data)), lambda x:x[0]-x[1]): #print (map(itemgetter(1), g)) print (list(map(itemgetter(1), g))) 請教各位,上述第四行的內容,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.32.131 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1493701493.A.8ED.html

05/02 13:34, , 1F
基本上就是根據list內數字跟index的差距去分群
05/02 13:34, 1F

05/02 13:35, , 2F
數字跟index有同樣差距的既為連續數字
05/02 13:35, 2F

05/02 17:20, , 3F
groupby, map, enumerate 哪個不懂
05/02 17:20, 3F

05/02 20:38, , 4F
enumerate經m大解釋後懂了,map和itemgeter(1)還不懂。
05/02 20:38, 4F

05/02 20:57, , 5F
等同於 (i[1] for i in g)
05/02 20:57, 5F
文章代碼(AID): #1P21DrZj (Python)
文章代碼(AID): #1P21DrZj (Python)