2017-09-27 5 views
0

Ich lerne immer noch Python, also ertragen Sie mit mir. ich das letzte Keyframe einer Animation zwischen Keyframe 1000 und 2000 erhaltenMaya Python: Wie man eine Liste in eine Ganzzahl konvertiert

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

Ergebnis:

[1090.0] 

An dieser Stelle nur das gewünschte Schlüsselbild bleibt in der Liste als Wert. ich konvertieren diesen Wert auf eine ganze Zahl wie folgt:

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

Ergebnis:

[1090] 

Jetzt möchte ich +1 auf diesen Wert hinzufügen, damit es wie folgt aussehen:

[1091] 

Ich kann einfach nicht herausfinden, wie.

+0

'shotLengthInt [0] + = 1 ' – AK47

+0

sind Sie sicher, dass Sie tatsächlich Ihre' int' in einer Liste haben? Wenn nicht, können Sie einfach am Anfang tun: 'lastFrame = int (shotLength [-1]) + 1'; ansonsten kannst du mit 'shotLengthInt [0] + = 1' gehen (wie @ AK47 vorgeschlagen), es fühlt sich einfach zu kompliziert an ... – mapofemergence

+0

@mapofemergence Danke! Das ist eigentlich perfekt. – dave

Antwort

2

zuweisen können Sie bearbeiten die folgenden:

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

Wir können eine Lambda-Funktion übergeben, kartieren, es zu erreichen:

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

Sie können einfach 'shotLengthInt = map (Lambda x: int (x) + 1, shotLength)' – AK47

+0

Ja, Ihr Recht, es ist unnötig, um wieder in die Liste zu konvertieren, danke, ich werde die ans bearbeiten. – dalonlobo

1

Ihr Wert in einer Liste enthalten ist (die eckigen Klammern bemerken), so um 1 diesen Wert zu aktualisieren, müssen Sie den ersten Index der Liste und Erhöhung verweisen, dass von 1

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

Sie können auch die list() entfernen, wenn Sie den Wert auf shotLengthInt

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