Comment puis-je obtenir l'index de la plus grande liste dans une liste de listes en utilisant Python?

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

Question

je stocke des cadres clés d'animation de Cinema4D (en utilisant le py4D impressionnant) dans une liste de listes:

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

I imprimer les images clés pour chaque propriété / piste dans une animation arbitraires et ils sont de longueurs différentes:

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

Maintenant, si je veux utiliser ces clés dans Blender je dois faire quelque chose comme:

  1. aller à la trame courante
  2. définir les propriétés de ce laps de clé (peut être situé, rotation, échelle) et insérer une image clé

Jusqu'à présent, mon plan est de:

  1. Boucle de 0 au nombre maximal d'images clés pour toutes les propriétés
  2. Boucle dans chaque propriété
  3. Vérifiez si elle a une valeur mémorisée pour la clé actuelle, le cas échéant, aller au cadre dans Blender et stocker les valeurs / insertion keyframe

Est-ce la meilleure façon de le faire?

Ceci est le contexte de la question.

D'abord, je dois trouver la plus grande liste que les magasins d'accessoires. Je suis nouveau à python et je me demandais s'il y avait une fonction magique qui fait que pour vous. Semblable à max (), mais pour des longueurs liste.

En ce moment je pense à coder comme ceci:

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

Quelle serait la meilleure façon d'obtenir cela?

Merci

Était-ce utile?

La solution

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

Cela vous donne un tuple contenant (index, list) de la plus longue liste d'accessoires.

Autres conseils

Vous pouvez utiliser une expression du générateur:

maxLen = max(len(p) for p in props)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top