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
