作者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://webptt.com/cn.aspx?n=bbs/Python/M.1493701493.A.8ED.html
1F:推 masamonster: 基本上就是根据list内数字跟index的差距去分群 05/02 13:34
2F:→ masamonster: 数字跟index有同样差距的既为连续数字 05/02 13:35
3F:→ zerof: groupby, map, enumerate 哪个不懂 05/02 17:20
4F:→ ides13: enumerate经m大解释後懂了,map和itemgeter(1)还不懂。 05/02 20:38
5F:→ zerof: 等同於 (i[1] for i in g) 05/02 20:57