Я храню ключевые кадры анимации от 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
Теперь, если я хочу использовать те ключи в Блендере, я должен сделать что-то как:
До сих пор мой план к:
Действительно ли это - лучший способ сделать это?
Это - контекст для вопроса.
Сначала я должен найти самый большой список, который подпирает хранилища. Я плохо знаком с Python и задавался вопросом, была ли волшебная функция, которая делает это для Вас. Подобный макс. (), но для длин списка.
В данный момент я думаю о кодировании его как это:
//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)