Thanks Hugo.
I was actually just gonna write this:

I figured it out! I figured it out! Don't help me! I did it on my own! I'm
so proud that ever line ends with an exclamation point!!!

And I needed to use float() not int() - but thanks again!

Ron Ganbar
email: [email protected]
tel: +44 (0)7968 007 309 [UK]
     +972 (0)54 255 9765 [Israel]
url: http://ronganbar.wordpress.com/



On 23 April 2012 18:27, Hugo Léveillé <[email protected]> wrote:

>   one way would be
>
>
> l = [('0', '0'), ('5', '8'), ('10', '-14'), ('15', '5')]
>
> l2 = [ (int(i[0]),int(i[1])) for i in l]
>
>
>
> print l2
>
>  On Mon, Apr 23, 2012, at 18:17, Ron Ganbar wrote:
>
>  Hi guys,
> I have this: [('0', '0'), ('5', '8'), ('10', '-14'), ('15', '5')]
>  It's the output of a RegEx script.
>
>  Now, I figure I probably can't use this for keyframes as the numbers are
> actually strings.
>  Any idea how I can easily convert them to numbers?
>
> Thanks,
> Ron Ganbar
> email: [email protected]
> tel: +44 (0)7968 007 309 [UK]
>      +972 (0)54 255 9765 [Israel]
> url: http://ronganbar.wordpress.com/
>
>
>
>  On 19 April 2012 13:43, Ron Ganbar <[email protected]> wrote:
>
>  If I need it to be as simple as this, I'll stay with Ivan's solution.
> If I'll need to condition it somehow, I'll switch to a regular loop.
>
> Thanks guy!
>
>
> Ron Ganbar
> email: [email protected]
> tel: +44 (0)7968 007 309 [UK]
>      +972 (0)54 255 9765 [Israel]
> url: http://ronganbar.wordpress.com/
>
>
>
>  On 19 April 2012 12:49, Howard Jones <[email protected]> wrote:
>
>   I still steer clear from list comprehensions for the reasons Ivan
> mentions, though something like that example is pretty clear.
>  However the speed increase is likely to be negligible for something like
> that isn't it Ivan? or not?
>
>  Howard
>
>   ------------------------------
> From: Ivan Busquets <[email protected]>
> To: Nuke Python discussion <[email protected]>
> Sent: Thursday, 19 April 2012, 6:54
> Subject: Re: [Nuke-python] Writing a Curve
>
>  Yes, it's a list comprehension, which is just a quick way to create a
> list from a series of statements, in this case a for loop.
>
>  But I see you already got that. The only reason I mentioned readability
> is that, when you start adding nested loops and conditions to the mix, then
> list comprehensions get increasingly hard to read. On the other hand, they
> are generally a little faster than the equivalent for loop(s).
>
>  So, your choice :) I just meant that not for being shorter it was
> necessarily a better approach.
>
>  Cheers,
>  Ivan
>
>  On Wed, Apr 18, 2012 at 10:27 PM, Ron Ganbar <[email protected]> wrote:
>
>  Isn't what you have there simply a for loop, just written differently?
> It's very readable anyway.
>  Thanks again,
> R
>   On Apr 19, 2012 8:24 AM, "Ivan Busquets" <[email protected]> wrote:
>
>  Yes, because addKey() takes either an AnimationKey or a list of them, I
> just built a list of them using a list comprehension structure, which is
> essentially a loop.
>
>  But if a for loop makes more sense, then by all means you should use
> that. Shorter is not always better, and the more readable you make it for
> yourself, the easier it will be to go back and make changes to it :)
>
>
>
>  On Wed, Apr 18, 2012 at 10:07 PM, Ron Ganbar <[email protected]> wrote:
>
>  Thanks Ivan,
> I figured it probably just needs a loop, but yours is far shorter than
> mine.
>
> I'll have a look at those tutorials.
>
>
> Ron Ganbar
> email: [email protected]
> tel: +44 (0)7968 007 309 [UK]
>      +972 (0)54 255 9765 [Israel]
> url: http://ronganbar.wordpress.com/
>
>
>
>   On 19 April 2012 03:44, Ivan Busquets <[email protected]> wrote:
>
> Hey Ron,
>
> I assume you just want the shortest possible version of setting the whole
> curve from values you already have, right?
> So, say you have an animated knob that you've created like this:
>
>    node = nuke.createNode( 'Blur' )
>  k = node['size']
>  k.setAnimated()
>
> And then you have list of keys and values that you want to feed at once as
> an animation curve.
> One thing you can do is put them all in a list of (frame,value) tuples,
> like this:
>
> keys = [(0,20), (1,30), (5,70), (8,90)]
>
> And then get the AnimationCurve object for that knob, and add them all
> like this:
>
> anim = k.animation(0)
> anim.addKey([nuke.AnimationKey(frame, value) for (frame,value) in keys])
>
> Of course, that is just an example for doing it in just a couple of lines.
> Depending on how your initial data is formatted, you might want to take a
> different approach.
> If you want to dig any deeper into it, you can find more info and some
> examples in the Python Developers Guide, under "Animation".
>
> Also check these two great tutorials from Nathan:
>
> http://www.nukepedia.com/python/knob-animation-and-python-a-primer/
> http://www.nukepedia.com/python/animationcurve-and-animationkey-objects/
>
> Hope that helps.
>
> Cheers,
> Ivan
>
>
>   On Wed, Apr 18, 2012 at 3:16 AM, Ron Ganbar <[email protected]> wrote:
>
>   Hi guys,
> quick question, back in Shake it was easy to type an animation curve, it
> was simply hermite(0, 0@1, 15@10, 44@100).
>  Is there a way to easily create an animation curve like that in Nuke?
>  I know about setValueAt(), but that's for each keyframe rather than a
> whole curve.
>
> Thanks!
> Ron Ganbar
> email: [email protected]
> tel: +44 (0)7968 007 309 [UK]
>      +972 (0)54 255 9765 [Israel]
> url: http://ronganbar.wordpress.com/
>   _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>       *_______________________________________________*
>  Nuke-python mailing list
>  [email protected], http://forums.thefoundry.co.uk/
>  http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
>  --
>  Hugo Léveillé
>  TD Compositing, Vision Globale
>  [email protected]
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to