首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Z值~ Python的分裂矢量三维阵列

基于Z值~ Python的分裂矢量三维阵列
EN

Stack Overflow用户
提问于 2015-11-17 03:40:14
回答 1查看 91关注 0票数 0

我正在制作一个C4D插件,我想知道:,您如何使用groupby来根据包含的值拆分数组?

我将这些代码发送到样条构建器函数,但是如果按原样发送分片列表,就会得到行之间的连接,这是不需要的。

因此,我需要发送分离的列表,以便样条构建器创建这些线路的集合,从而避免互连。

代码语言:javascript
复制
#initial contains XYZ vectors

splinelist = [(-200, 0, -200), (0, 0, -200), (200, 0, -200), (-200, 0, 0), (0, 0, 0), (200, 0, 0), (-200, 0, 200), (0, 0, 200), (200, 0, 200)]


#desired handcoded for example separated based on Z value

la = [(-200, 0, -200), (0, 0, -200), (200, 0, -200)]
lb = [(-200, 0, 0), (0, 0, 0), (200, 0, 0)]
lc = [(-200, 0, 200), (0, 0, 200), (200, 0, 200)]


#desired list of lists based on Z value

desiredlist = [[(-200, 0, -200), (0, 0, -200), (200, 0, -200)],[(-200, 0, 0), (0, 0, 0), (200, 0, 0)],[(-200, 0, 200), (0, 0, 200), (200, 0, 200)]]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-17 04:04:03

我认为这能满足你的需要:

代码语言:javascript
复制
import itertools
splinelist = [(-200, 0, -200), (0, 0, -200), (200, 0, -200), (-200, 0, 0), (0, 0, 0), (200, 0, 0), (-200, 0, 200), (0, 0, 200), (200, 0, 200)]
grouped = itertools.groupby(splinelist, lambda x : x[2])
desiredlist  = [list(group) for key, group in grouped]
print(desiredlist)

输出:

代码语言:javascript
复制
[[(-200, 0, -200), (0, 0, -200), (200, 0, -200)], [(-200, 0, 0), (0, 0, 0), (200, 0, 0)], [(-200, 0, 200), (0, 0, 200), (200, 0, 200)]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33748751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档