python中列表的赋值

    技术2022-05-19  21

     最近刚刚学习python语言,发现python中列表的赋值很像C++中数组的赋值方式,不过各方面都比C++方便很多啊。

     

    c = [1,8,9,3,4] d = c print c[0] print d[0] print '=========================' d[0] = 100 print c[0] print d[0]

    输出结果:

    11=========================100100

     

    这样的简单赋值 其实是将C和D指向同一个列表。很像C/C++真的数组指针赋值哈。

    int a[] = {1,3,7,8,6,4}; int b[6] = a; cout << a[0] << endl; cout << b[0] << endl; cout << "======================================"<< endl; b[0] = 100; cout << a[0] << endl; cout << b[0] << endl;

    输出结果:

    11=========================100100

     

    也许python列表赋值和C语言中的指针一样,指向同一个内存地址吧。

     

    但是python中可以用分片的方式。复制出一份新的列表的副本,而不是指向同一个列表

     

    e = [1,8,9,3,4] f = e[:] print e[0] print f[0] print '=========================' f[0] = 100 print e[0] print f[0]

    输出结果:

    11=========================1100

     

    可以看出,列表e和f完全是两个列表。

     

    列表中有很多操作,比如sort之类的,都是不返回新副本的。所以改变原来的列表,并不是我们希望的。

     

     


    最新回复(0)