找到重复的数值并用null值替换,完成替换后再返回最初的数据??学习寻求更好的思路。


睡前在思考如题的问题,之后爬起来写了这个。可以说是我是个 作精。。。。
因为我现在正在上GH基础工具课刚完成曲线,回忆之前的课程来实现如标题的效果.但是看着这个程序,觉得有点冗长,想看看是否还有更好的思路。。。。而且,感觉这样的操作可能在某些实际运用中会比较常见吧。

之后再将数据返回去,但是我这个方案感觉有点不走正道吧,也想求更好的思路。

你的第二个图什么数字都看不清。
第一个图和你的问题描述也不匹配,图上做的事情是将重复的数据变成null,而标题说的是0和1.
标题也没说明白,只保留一个并将数值替换成0,将什么数值替换成0?

哈哈,大鹿说的对,前面标题的描述是当时都不知道怎么替换,再准备发贴的时候冷静下来又想了想,就知道了。我现在来更新一些标题

适量做一些这样的练习有助于对grasshopper数据结构的理解和应用。
注意是适量,不要太钻进去了。

我认为你的这个需求本身不是太科学。
首先是人工制造Null,对GH来说很勉强。
下面给一个前半部分的参考,其中的代码是专门用来生成null的

这里用了代码就是因为拐弯抹角去制造null得不偿失,而且程序可读性很差

至于这类问题,我建议你考虑一下自己的思路是否正确,为什么一定要通过Null这类方式,GH对null类型原生的支持不是很充分,而处理你这类型的问题有更多靠谱的好办法。

首先是分组:


分组肯定是你已经掌握的方法。
而之后你想要的重复数据变成Null,更直接的办法就是直接用list item解决。

相信这样的数据结构会更加好用。利用上路径分组功能,而不是去在一个列表内折腾Null

2 个赞

嗯,是的,其实主要就是练习自己对数据的管理。您后面写的分组的方式,这个我是知道的。
主要目的就是想 折腾各种情况下的一些状况吧,让自己对数据的管理和控制更加熟练。

操练是挺好的,多多益善。
但是Null并不是正道。如果非要借助一些东西去做标记,也建议选择其他类型。例如这个情况下的同类型整数。
例如你这里的序号范围确定是是0-100,那么你用-1,-100或者9999标记都要方便很多。