我将来自Cinema4D的动画关键帧(使用超棒的py4D)存储到列表列表中:
props = [lx,ly,lz,sx,sy,sz,rx,ry,rz]
我在任意动画中打印出每个属性/轨道的关键帧,它们的长度不同:
track Position . X has 24 keys
track Position . Y has 24 keys
track Position . Z has 24 keys
track Scale . X has 1 keys
track Scale . Y has 1 keys
track Scale . Z has 1 keys
track Rotation . H has 23 keys
track Rotation . P has 24 keys
track Rotation . B has 24 keys
现在,如果我想在Blender中使用这些键,我需要做类似的事情:
到目前为止,我的计划是:
这是最好的方法吗?
这是问题的背景。
首先,我需要找到最大的道具商店列表。我是python的新手,想知道是否有一个神奇的功能可以帮助你。与max()类似,但是对于列表长度。
目前我正在考虑将其编码为:
//after props are set
lens = []
for p in props: lens.append(len(p))
maxLen = max(lens)
最好的方法是什么?
由于
答案 0 :(得分:22)
max(enumerate(props), key = lambda tup: len(tup[1]))
这会为你提供一个元组,其中包含道具中最长列表的(index, list)
。
答案 1 :(得分:8)
您可以使用生成器表达式:
maxLen = max(len(p) for p in props)