看板 Python 關於我們 聯絡資訊
※ 引述《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
masamonster: 基本上就是根據list內數字跟index的差距去分群 05/02 13:34
masamonster: 數字跟index有同樣差距的既為連續數字 05/02 13:35
zerof: groupby, map, enumerate 哪個不懂 05/02 17:20
ides13: enumerate經m大解釋後懂了,map和itemgeter(1)還不懂。 05/02 20:38
zerof: 等同於 (i[1] for i in g) 05/02 20:57