Improve upon string concatenation section.

This commit is contained in:
Ian Cordasco
2012-06-15 14:08:38 -04:00
parent 93498b9727
commit 226ad55c51
+25 -1
View File
@@ -389,7 +389,9 @@ One peculiarity of Python that can surprise beginners is that
strings are immutable. This means that when constructing a string from
its parts, it is much more efficient to accumulate the parts in a list,
which is mutable, and then glue ('join') the parts together when the
full string is needed.
full string is needed. One thing to notice, however, is that list
comprehensions are better and faster than constructing a list in a loop
with calls to append().
**Bad**
@@ -411,6 +413,28 @@ full string is needed.
nums.append(str(n))
print "".join(nums) # much more efficient
**Best**
.. code-block:: python
# create a concatenated string from 0 to 19 (e.g. "012..1819")
print "".join([str(n) for n in range(20)])
One final thing to mention about strings is that using join() is not always
best. In the instances where you are creating a new string from a pre-determined
number of strings, using the addition operator is actually faster, but in cases
like above or in cases where you are adding to an existing string, using join()
should be your preferred method.
.. code-block:: python
foo = 'foo'
bar = 'bar'
foobar = foo + bar # This is good
foo += 'ooo' # This is bad, instead you should do:
foo = ''.join([foo, 'ooo'])
Vendorizing Dependencies
------------------------