作者ides13 (juso)
看板Python
標題Re: [問題] 刪除不連續數字
時間Tue May 2 13:04:49 2017
※ 引述《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