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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Tzury Bar Yochay

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

    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?
  • Gabriel Genellina

    #2
    Re: behavior varied between empty string '' and empty list []

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

    Comment

    Working...