“如何将属性列表中的连续数字从”1,2,3,4,7,10,13,14,15,16“替换为”1-4,7,10,13,14-16“的注释和答案?” https://knowledge.亚搏在线safe.com/questions/74777/how-to-replace-continuous-numbers-in-an-attribute.html 关于“如何将属性列表中的连续数字从“1,2,3,4,7,10,13,14,15,16”替换为“1-4,7,10,13,14-16”的问题的最新评论和答案? 高桥回答 https://knowledge.亚搏在线safe.com/answers/74876/view.html网站

我将采用python脚本方法作为一个实际的解决方案,但这也可能是一个有趣的使用几何运算的练习。例如

坐,2018年7月21日10:35:10格林尼治标准时间 高桥
Daleatsafe回答亚搏在线 https://knowledge.亚搏在线safe.com/answers/74907/view.html网站 回复:蟒蛇-- @克伦蒂--只需在你的流程中放上一个pythoncaller,然后将Takashi的所有代码粘贴为脚本(当然也包括Bruce的“runs”函数)。

很酷的结果。想检查一下,所以我构建了一个示例工作区。主要技巧是告诉pythoncaller要使用的函数的名称(在本例中,处理功能)。见附件: 项目存储范围.fmw
坐,2018年7月21日05:44:04格林尼治标准时间 达莱特保险箱亚搏在线
Bruceharold对Bruceharold评论的评论 https://knowledge.亚搏在线safe.com/comments/74827/view.html网站 谢谢Takashi,我有点懒。 @克伦蒂
如果代码与未排序的列表一起使用,那么在中进行“排序”只是一种良好的实践。
FRI,2018年7月20日格林威治时间15:43:37 布鲁塞哈德
克伦蒂对克伦蒂回答的评论 https://knowledge.亚搏在线safe.com/comments/74826/view.html网站 我需要把“分类”放在里面吗?列表已通过列表排序转换器排序。我也很难将python合并到FME中,我使用python调用程序两次吗?每个功能一个?道歉,我刚开始在FME中使用python。

FRI,2018年7月20日格林尼治标准时间15:25:18 克伦蒂
高知对高知答案的评论 https://knowledge.亚搏在线safe.com/comments/74800/view.html网站 这是使用由提供的“runs”函数的pythoncaller脚本示例 布鲁斯哈罗德.
def processfeature(feature):sub=feature.getattribute(“legal_sub”)if sub:s=[]for nums in runs(sorted([int(c)for c in sub.split(',')]):if 2<len(nums):s.append('%s-%s'%(nums[0],nums[-1])否则:s+=[str(n)for n in nums]feature.setattribute('legal_sub','、'.join(s))定义运行(oidlist):
       
FRI,2018年7月20日03:19:52格林尼治标准时间 高桥
Krenty评论 https://knowledge.亚搏在线safe.com/comments/74780/view.html网站 我附上了一份要处理的数据样本。我要修改的属性值是合法的子值。 数据压缩

清华大学,2018年7月19日20:42:06格林尼治标准时间 克伦蒂
布鲁塞哈罗德回答 https://knowledge.亚搏在线safe.com/answers/74779/view.html网站

您好!

您可以修改这个python函数,它返回一个列表。

>>>运行([1,2,3,4,7,10,13,14,15,16])
〔1〕2,三,4,〔7〕;〔10〕;〔13〕14,15,16 ] ]

#用于生成OID值运行的函数def runs(oidlist):在oidlist中为OID运行=[]:如果不运行:runs.append([oid])如果运行[-1]==oid-1:runs[-1].append(oid)否则:runs.append([oid])返回runs
清华大学,2018年7月19日20:39:35格林尼治标准时间 布鲁塞哈德