Re: Last iteration?

2007-10-12 Thread tasjaevan
On Oct 12, 11:58 am, Florian Lindner <[EMAIL PROTECTED]> wrote:
> Hello,
> can I determine somehow if the iteration on a list of values is the last
> iteration?
>
> Example:
>
> for i in [1, 2, 3]:
>if last_iteration:
>   print i*i
>else:
>   print i
>
> that would print
>
> 1
> 2
> 9
>
> Can this be acomplished somehow?
>

Another suggestion:

  l = [1, 2, 3]
  for i in l[:-1]: print i
  i = l[-1]
  print i*i


James



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: python newbie

2007-11-02 Thread tasjaevan
On Nov 2, 3:35 pm, Jim Hendricks <[EMAIL PROTECTED]> wrote:
>
> This sounds like an issue of terminology.  I understand that I don't
> declare variables like I would in C or Java, but that they are
> implicitly declared via the first assignment.  And the define objects
> and bind a name to them makes no sense to me.  I can only assume that if
> I say: my_file = open( ... the "techy" explaination is that the open
> function defines a file object and binds the name my_file to it.  To me,
> it's easier to say that the open function creates a file object and
> assigns a reference to the my_file variable.  If my_file does not exist,
> it is created, if my_file does exist, prior to the assignment, the type
> of my_file is checked to ensure type safety.
>

Objects have types, names (what you're calling variables) don't.

  my_file = open ...

binds the name 'my_file' to a file object. A subsequent

  my_file = 7

will bind the name 'my_file' to an int object. No type-checking
involved (but neither is there any loss of type safety).


James


-- 
http://mail.python.org/mailman/listinfo/python-list


List comp bug?

2006-04-13 Thread tasjaevan
I seem to have stumbled across a problem with list comprehensions (or
perhaps it's a misunderstanding on my part)

   [f() for f in [lambda: t for t in ((1, 2), (3, 4))]]

is giving me

   [(3, 4), (3, 4)]

The equivalent using a generator expression:

[f() for f in (lambda: t for t in ((1, 2), (3, 4)))]

is giving me

[(1, 2), (3, 4)]

as expected.

Is this a known bug? I'm using Python 2.4.3

Thanks

James

-- 
http://mail.python.org/mailman/listinfo/python-list