¿Cómo puedo obtener el índice de la lista más grande dentro de una lista de listas utilizando Python?

StackOverflow https://stackoverflow.com/questions/3149502

Pregunta

Estoy almacenar tramas clave de animación Cinema4d (utilizando el Py4D impresionante) en unas listas de listas:

props = [lx,ly,lz,sx,sy,sz,rx,ry,rz]

I imprime los fotogramas clave para cada propiedad / pista en una animación arbitraria y que son de longitudes diferentes:

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

Ahora bien, si quiero usar esas llaves en Blender I necesidad de hacer algo como:

  1. ir a la trama actual
  2. establecer las propiedades de ese fotograma clave (puede ser la ubicación, la rotación, escala) y el inserto de un fotograma clave

Hasta ahora, mi plan es:

  1. Loop desde 0 hasta el número máximo de fotogramas clave para todas las propiedades
  2. Bucle a través de cada propiedad
  3. Compruebe si tiene un valor almacenado para la clave actual, si es así, ir al marco en Blender y almacenar los valores / insertar fotograma clave

Es ésta la mejor manera de hacer esto?

Este es el contexto de la pregunta.

En primer lugar tengo que encontrar la lista más grande que apuntala las tiendas. Soy nuevo en Python y preguntaba si había una función mágica que lo hace por usted. Similar a max (), pero para la lista de longitudes.

En este momento estoy pensando en la codificación de esta manera:

//after props are set
lens = []
for p in props: lens.append(len(p))
maxLen = max(lens)

¿Cuál sería la mejor manera de conseguir eso?

Gracias

¿Fue útil?

Solución

max(enumerate(props), key = lambda tup: len(tup[1]))

Esto le da una tupla que contiene (index, list) de la lista más larga de los apoyos.

Otros consejos

Se puede utilizar un generador de expresión:

maxLen = max(len(p) for p in props)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top