如何使用Python获得列表列表中最大列表的索引?

问题描述:

我从Cinema4D在存储动画关键帧(使用真棒py4D)转换成列表的列表:如何使用Python获得列表列表中最大列表的索引?

​​

我打印出每个属性/轨道的关键帧中的任意的动画和它们具有不同的长度:

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 

现在,如果我想使用搅拌器中的那些键,我需要做的是这样:

  1. 到当前帧
  2. 设置该关键帧(可以是位置,旋转,缩放)的属性和插入一个关键帧

到目前为止我的计划是:

  1. 环路从0到键的最大数目对于所有属性
  2. 循环每一个属性
  3. 检查它是否具有存储当前键,如果是,转到在搅拌机的帧和存储值的值帧/关键帧插入

这是最好的方法吗?

这是问题的上下文。

首先,我需要找到道具店最大的列表。我是新来的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)元组。

+0

+1使用专门为此目的设计的功能。 – Brian 2010-06-30 13:56:34

+0

这工作辉煌!谢谢! – 2010-06-30 14:32:49

+0

如果存在平等怎么办?在listA里面说,我有三个大小为3,3,2的子列表?然后它会返回? – 2013-09-06 06:53:50

您可以用生成器表达式:

maxLen = max(len(p) for p in props) 
+0

这会得到你最大长度的长度。如果你这样做,你需要第二次通过列表来获取列表本身。 – Brian 2010-06-30 13:49:10

+0

从响应者的答案,这个答案可以改为'maxList = max(a,key = lambda tup:len(tup))'。所以,max是一个“为你而做的魔术功能”,因为它可以采用一个关键参数。 – Brian 2010-06-30 13:53:44