接上文继续补充python3语法
列表
python的列表和c++数组差不多,思想是一样的
除了语法格式不同外,python的数组中的数据类型可以不同,而且可以嵌套数组(开始套娃0.0)
和字符串相同也可以通过下标访问(好像是废话。。本质都是数组了肯定是可以根据下标访问) 同时也支持负数
也同样支持切片操作
深拷贝和浅拷贝
来看这样的代码
a是x和y这两个列表的列表(其实和二维数组很像(思想上来说是这样的QAQ))
接下来我们让b=a
这样的操作就相当于c语言的指针,此时b和a指向同一片地址空间
那么我们此时将b[0]换成字符串abc
那么a也随之发生变化
这样就成为浅拷贝
要变都变嘛 和指针的思想没啥区别
以下写法类似
我用我丑陋无比的画图技术来解释一下背后的原因
浅拷贝只是将第一层复制给了b 但是a中的x和y 与b中的x和y指向的是同一片空间,这样就会造成不管是变a中的x和y,与b中的x和y,其本质变化的都是x和y本身
深拷贝会在复制时执行一遍dfs 把每一层都复制给b 那么无论b怎么操作都是不会影响a的
python的列表也是支持相加操作 本质就是拼接
列表也可以通过切片赋值
清空一个数组