By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,907 Members | 2,039 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,907 IT Pros & Developers. It's quick & easy.

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

P: n/a
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?
Mar 24 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
En Mon, 24 Mar 2008 15:22:43 -0300, Tzury Bar Yochay
<Af**********@gmail.comescribió:
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:

pya = [1,2,3]
pyb = []
pyb.extend(a)
pyb
[1, 2, 3]

and this is the first part:

pya = [1,2,3]
pyb = []
pyc = b.extend(a)
pyc
pyb
[1, 2, 3]

except that in your original example, the empty list had no name so you
cannot see how it changed.

--
Gabriel Genellina

Mar 24 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.