[w.upper() for w in ["foo", "bar"]]
This underscore.py is not pythonic. Don't use it.- List comprehensions: helps a lot.
- (str|unicode).format method (http://docs.python.org/library/string.html#format-examples) provides you a very simple templating language.
- Avoid using camelCase in variable/method/function names. Yes, I know Python itself break some of those rules, but they're trying to do it right in Python3. In fact, it'll be better if you read the PEP8 document (http://www.python.org/dev/peps/pep-0008/)
Nevertheless I would like to welcome you to Python and I hope you have a great experience with the language :-)
http://docs.python.org/dev/py3k/whatsnew/3.0.html#changes-al...
PEP 3101: Advanced String Formatting. [...] The plan is to eventually make this the only API for string formatting, and to start deprecating the % operator in Python 3.1.
As far as I know, interpolation is not actually deprecated yet though.
It was backported, but the superseding is mostly for Python 3.
> Is the latter now deprecated?
Not at all, and not expected to be, though str.format is recommended going forward: http://docs.python.org/py3k/library/stdtypes.html#old-string...
> As the new String Formatting syntax is more flexible and handles tuples and dictionaries naturally, it is recommended for new code. However, there are no current plans to deprecate printf-style formatting.
map(str.upper, ['foo', 'bar']) == _(["foo", "bar"]).invoke("upper")
[w for w in ["foo", "hello", "bar", "world"] if len(w) > 3] == _.filter(["foo", "hello", "bar", "world"], lambda x, a: len(x) > 3)
sorted([i 2 for i in [10, 48, 56, 30, 20] if i > 20]) == _([10, 48, 56, 30, 20]).chain().filter(lambda x, a: x > 20).map(lambda x, a: x * 2).sortBy().value()