按类别分隔的Python forloop

2024-10-03 02:42:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我才刚刚开始接触Python来开发Houdini建模软件。在

我要做的是创建一个包含“点坐标”和“建筑级别值”的分类列表/字典。然后,我想对每一组具有匹配级别属性的点坐标使用for循环。在

到目前为止,我得到的是:

for point in geo.points():
    for i in range(-1,levels):
        if i == -1:
            pos = point.position()
        else:       
            pos = point.position() + hou.Vector3((0, level_height,0)) 
        coord = []
        coord.append(pos)
        for position in coord:
            point = geo.createPoint()
            point.setPosition(position)
            point.setAttribValue(pointlevel, i+1)
            point.setAttribValue(building, cluster)

我真正想做的是:

^{pr2}$

我的知识是有限的,但我知道我想实现什么,最简单的方法是什么?在


Tags: inpos列表for软件分类position建模
1条回答
网友
1楼 · 发布于 2024-10-03 02:42:06

您要查找的函数名为^{}groupby()将按您给它的键对iterable分组,前提是输入已经被排序到这样的组中。在

from itertools import groupby

for pointlevel, points in groupby(geo.points(), key=pointlevel_of_point):
    for point in points:
        # do something with all points for this pointlevel.

其中pointlevel_of_point是一个函数,它返回geo.points()返回的任何点的级别。在

groupby()提供了key函数的当前返回值,以及一个新的iterable,它保证返回key函数返回值不变的所有元素。在

相关问题 更多 >