如何在使用Python列表中获得最大列表的索引?
题
我将Cinema4D(使用Awesome 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
现在,如果我想在搅拌机中使用这些键,我需要做类似的事情:
- 转到当前框架
- 设置该关键框架的属性(可以是位置,旋转,比例),并插入键盘
到目前为止,我的计划是:
- 循环从0到所有属性的最大键帧数
- 循环穿过每个属性
- 检查它是否为当前密钥存储一个值
这是最好的方法吗?
这是问题的背景。
首先,我需要找到道具商店的最大列表。我是Python的新手,想知道是否有一个神奇的功能可以为您做到这一点。类似于max(),但对于列表长度。
目前,我正在考虑这样的编码:
//after props are set
lens = []
for p in props: lens.append(len(p))
maxLen = max(lens)
最好的方法是什么?
谢谢
解决方案
max(enumerate(props), key = lambda tup: len(tup[1]))
这给你一个元组包含 (index, list)
道具中最长的列表。
其他提示
您可以使用发电机表达式:
maxLen = max(len(p) for p in props)
不隶属于 StackOverflow