Marc Huffnagle wrote:
I have a number of variables that I want to modify (a bunch of strings that I need to convert into ints). Is there an easy way to do that other than saying:

 > a = int(a)
 > b = int(b)
 > c = int(c)

I tried

 > [i = int(i) for i in [a, b, c]]

but that didn't work because it was creating a list with the values of a, b and c instead of the actual variables themselves, then trying to set a string equal to an integer, which it really didn't like.

Actually, that didn't work because it's a SyntaxError to have an assigment statement inside a list comprehension:


py> [i = int(i) for i in [a, b, c]]
Traceback (  File "<interactive input>", line 1
    [i = int(i) for i in [a, b, c]]
       ^
SyntaxError: invalid syntax

You could try something like:

py> a, b, c
('1', '2', '3')
py> a, b, c = [int(i) for i in (a, b, c)]
py> a, b, c
(1, 2, 3)

For a few variables, this is probably a reasonable solution. For more than 4 or 5 though, it's going to get unreadable. Of course for that many variables, you should probably be keeping them in a list instead of as separate names anyway...

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

Reply via email to