• 008_python列表的传值与传址


    一、

    今天发现一个奇怪的现象,代码如下:

    aList = ['xyz', 'zara', 'abc', 'xyz','xysdfji','xywooudd']
    for x in aList:
        if x.startswith('xy'):
            aList.remove(x)
    print "List : ", aList
    
    输出如下=>发现没有最后一个元素也是以xy开头,但是没有删除掉
    List :  ['zara', 'abc', 'xysdfji']
    

    二、换成如下的就可以了

    aList = ['xyz', 'zara', 'abc', 'xyz','xysdfji','xywooudd']
    for x in aList[:]:
        if x.startswith('xy'):
            aList.remove(x)
    print "List : ", aList

    输出如下=>发现没有最后一个元素也是以xy开头,但是没有删除掉
    List :  ['zara', 'abc']

    三、比较它们两个的区别

    aList = ['xyz', 'zara', 'abc', 'xyz','xysdfji','xywooudd']
    print id(aList)
    print id(aList[:])
    print "------------"
    for y in aList:
        print y
    print "----------"
    for x in aList[:]:
        print 

    输出如下=>

    4534445984
    4534446200
    ------------
    xyz
    zara
    abc
    xyz
    xysdfji
    xywooudd
    ----------
    xyz
    zara
    abc
    xyz
    xysdfji
    xywooudd
    

      

  • 相关阅读:
    《世界是数字的》
    IT小小鸟读书笔记
    Codeforces Round #665 Div.2 (CF1401)
    Codeforces Round #662 Div.2 (CF1392)
    std::array的效率问题
    CSS布局学习总结
    TCP中三次握手与四次挥手
    初见Vuex
    初见webpack
    CentOS7使用yum简便安装mysql5.7
  • 原文地址:https://www.cnblogs.com/arun-python/p/7445766.html
Copyright © 2020-2023  润新知