Steve Holden wrote:
>>> a,b,c = 1.1, 2.2, 3.3 >>> a,b,c = map(int, (a,b,c)) >>> a,b,c (1, 2, 3) >>> a,b,c = [int(x) for x in (a,b,c)] >>> a,b,c (1, 2, 3)
regards Steve
Thanks ... so there's no way to pass an actual variable into a list mapping, instead of its value? I guess I'm thinking of something the equivalent of call by reference.
No, not really. You could do something like:
py> a, b, c = 1.1, 2.2, 3.3 py> mod = __import__(__name__) py> for name in ('a', 'b', 'c'): ... setattr(mod, name, int(getattr(mod, name))) ... py> a, b, c (1, 2, 3)
where you use the namespace in which the name resides (the module), but I'd probably advise against it... I would suggest doing something like:
py> myvars = dict(a=1.1, b=2.2, c=3.3) py> for key, value in myvars.iteritems(): ... myvars[key] = int(value) ... py> myvars {'a': 1, 'c': 3, 'b': 2}
If you want to pass around variables, it's generally better to put them in a dict, list, class instance or some other sort of container then mess around with them at the module level...
(another) STeVe -- http://mail.python.org/mailman/listinfo/python-list