# [Tutor] Please look at my wordFrequency.py

Kent Johnson kent37 at tds.net
Wed Oct 12 00:00:13 CEST 2005

```Andrew P wrote:
> Just want to add a little something here, because reading over this
> thread, I think there may have been some confusion:
>
> Kent wrote:
>
> for e in saveRemovedForLaterL:
>    L.append(e)
> could be
> L.extend(e)
>
> I think he might have meant:
>
> for e in saveRemovedForLaterL:
>    L.append(e)
> could be
> L.extend(saveRemovedForLaterL)

Right you are, thanks for the catch!

Kent

>
> The difference between these is that one is explicitly looping with
> Python, accessing each element of the first list one at a time,
> appending it to the other one at a time.  Whereas if you call extend()
> instead, it will be doing that looping for you with the extend() method,
> written in C, and very quickly indeed.  I would worry less about what is
> written in C vs what is built-in, and does implicit looping for you.
> Any time you can avoid stepping over a list one element at a time, is
> usually the faster way.
>
>  >>> lst = [1,2,3,4]
>  >>> lst2 = [5,6,7,8]
>  >>> lst.extend(lst2)
>  >>> print lst
> [1, 2, 3, 4, 5, 6, 7, 8]
>
> Compare this to:
>
>  >>> lst = [1,2,3,4]
>  >>> lst2 = [5,6,7,8]
>  >>> for num in lst2:
> ...     lst.append(num)
>  >>> print lst
> [1, 2, 3, 4, 5, 6, 7, 8]
>
>
> FWIW, append is generally used to generate a list from something
> calculated on the fly:
>
>  >>> lst = []
>  >>> for i in range(10):
> ...     lst.append(i)
> ...
>  >>> print lst
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>
>
>
>     Ah. But how can I know what is in C code and what isn't? For example, in
>     a previous post you say that L.extend(e) is in C, and imply that
>     L.append(e) isn't, and that therefore L.extend(e) should be used.
>
>     Well, back to Hetlands' Beginning Python.
>
>     Dick
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor

```