2017-09-27 4 views
0

Je suis encore en train d'apprendre Python, alors supportez-moi. Je reçois la dernière image-clé d'une animation entre 1000 et keyframe 2000.Maya Python: Comment convertir une liste en un entier

shotLength = cmds.keyframe(time=(1000,2000) ,query=True) 
del shotLength[:-1] 
print shotLength 

Résultat:

[1090.0] 

A ce stade, seul le keyframe désiré reste dans la liste en tant que valeur. je convertir cette valeur à un nombre entier comme ceci:

shotLengthInt = list(map(int, shotLength)) 
print shotLengthInt 

Résultat:

[1090] 

Maintenant, je veux ajouter +1 à cette valeur il ressemblerait à ceci:

[1091] 

Je ne peux pas comprendre comment.

+0

'shotLengthInt [0] + = 1' – AK47

+0

êtes-vous sûr que vous voulez vraiment avoir votre' int' dans une liste? sinon, vous pouvez simplement faire, au début: 'lastFrame = int (shotLength [-1]) + 1'; sinon vous pouvez aller avec 'shotLengthInt [0] + = 1' (comme suggéré par @ AK47), cela semble juste trop compliqué ... – mapofemergence

+0

@mapofemergence Merci! C'est en fait parfait. – dave

Répondre

2

Vous pouvez modifier les éléments suivants:

shotLengthInt = list(map(int, shotLength)) 
print shotLengthInt 

On peut passer une fonction lambda à la carte, pour y parvenir:

shotLengthInt = map(lambda x: int(x) + 1, shotLength) 
print shotLengthInt 
+0

Vous pouvez simplement utiliser 'shotLengthInt = carte (lambda x: int (x) + 1, longueur de tir)' – AK47

+0

Oui votre droit, son inutile de convertir à la liste à nouveau, merci, je vais éditer les ans. – dalonlobo

1

Votre valeur est contenue dans une liste (notez les crochets), afin de mettre à jour cette valeur par 1, vous devez référencer le premier indice de la liste et l'incrément que par 1

>>> shotLengthInt = [1090] 
>>> shotLengthInt 
> [1090] 
>>> shotLengthInt[0] += 1 
>>> shotLengthInt 
> [1091] 

Vous pouvez supprimez également le list() lors de l'attribution de la valeur à shotLengthInt

>>> shotLength = [1090.0] 
>>> shotLength 
> [1090.0] 
>>> shotLengthInt = map(int, shotLength) 
>>> shotLengthInt 
> [1090]