behavior varied between empty string '' and empty list []
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Mon Mar 24 14:56:24 EDT 2008
En Mon, 24 Mar 2008 15:22:43 -0300, Tzury Bar Yochay
<Afro.Systems at gmail.com> escribió:
> while I can invoke methods of empty string '' right in typing
> (''.join(), etc.) I can't do the same with empty list
>
> example:
>
>>>> a = [1,2,3]
>>>> b = [].extend(a)
>>>> b
>>>> b = []
>>>> b.extend(a)
>>>> b
> [1,2,3]
extend() -like most mutating methods- does not return the list, it returns
None.
Your empty list grow the 3 additional items, but since there were no
additional references to it, got destroyed.
> I would not use b = a since I don't want changes on 'b' to apply on
> 'a'
Try with b = list(a)
> do you think this should be available on lists to invoke method
> directly?
You already can. Your example is misleading because you used b with two
meanings.
(Compare the *usage* of each variable/value, not their names). This is
equivalent to the second part of your example:
py> a = [1,2,3]
py> b = []
py> b.extend(a)
py> b
[1, 2, 3]
and this is the first part:
py> a = [1,2,3]
py> b = []
py> c = b.extend(a)
py> c
py> b
[1, 2, 3]
except that in your original example, the empty list had no name so you
cannot see how it changed.
--
Gabriel Genellina
More information about the Python-list
mailing list