behavior varied between empty string '' and empty list []

T

Tzury Bar Yochay

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]

I would not use b = a since I don't want changes on 'b' to apply on
'a'

do you think this should be available on lists to invoke method
directly?
 
G

Gabriel Genellina

En Mon, 24 Mar 2008 15:22:43 -0300, Tzury Bar Yochay
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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top