继上一次Dynamo按管道信息匹配管道类型中发现ReplaceItemAtIndex不能在列表多个索引处替代对应的值,这次就来找一下解决办法。

不能够如愿的将列表a变成[4,5,6,4,5],下面是三种方法来解决这个问题:

  1. 借助ClockWork节点包

此节点包中增强版的ReplaceItemAtIndex节点包RelaceItemAtIndex+能够很好解决此问题,上篇中已提及。

    2.使用CodeBlock

这种方法比较简洁只需要把c赋值给a列表在b列表索引项的值即可。

这里有一个小细节值得注意,a=[1,2,3,4,5]和 a=[1..5]尽管看起来很像,实际并不是一码事。

    可以发现前者是一个一维列表,而后者是二维列表,这是因为dynamo为a=[1..5]将要可能加入的元素预留了位置。

所以将a=[1,2,3,4,5]改成a=[1..5]的形式,上述功能并不能奏效:

3.使用PythonScript

一开始我写出了下面蹩脚的语句:

试图用for循环历遍列表中的每一项,软件提示我在第四行太多值没有打包

于是百度了一下Python打包函数是zip(),zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。就有了:

如愿的将列表变成了想要的样子。

—————————————————–(我是分割线)

此外,我还发现List.Insert也存在着类似的问题:

当然解决办法也是类似:

这样写看起来有点臃肿,不太符合python简洁优雅的气质,于是可以这样:

欢迎阅读,分享,后台回复交流,批评指正。

如转载请注明出处,否则追究法律责任(说说而已,全靠自觉)。

0

评论0

请先
DLT_5219-2023_架空输电线路基础设计规程(正式版)及 DL/T5219-2014架空输电线路基础设计技术规程(附条文说明).pdf
DLT_5219-2023_架空输电线路基础设计规程(正式版)及 DL/T5219-2014架空输电线路基础设计技术规程(附条文说明).pdf
1分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站