列表:[]
列表是可以容纳不同类型的数据的
列表取:
列表切片:一次去获取多个元素
第三个参数,设置跨度值:
列表倒序输出
列表增:
列表后面添加元素:
切片:实现添加元素
任意位置添加元素:insert
列表删:
列表改:
列表排序:
列表查:
列表复制:
切片实现复制:
列表加和乘
嵌套列表(二维数组)
访问嵌套列表
print(each, end=' ')
,在遍历到每一个元素时,将元素输出,并且end=' '
表示输出元素后不换行,而是输出一个空格,这样同一行的元素可以在一行中显示
end=' '
:是print()
函数的一个参数,用于指定输出结束后追加的字符。默认情况下,print()
函数输出后会自动换行,因为end
的默认值是'\n'
(换行符);这里将end
的值设置为' '
(一个空格),表示每个元素输出后不换行,而是添加一个空格,使得同一行的元素可以在一行中以空格分隔显示
可以通过循环语句创建并初始化二维列表
第二种创建的二维列表是有问题的:
B视图通过*实现对嵌套列表进行拷贝,其实它拷贝的是对同一个列表的引用,内部嵌套的不是三个个不同的列表 ,而是对同一个列表的三次引用
浅拷贝和深拷贝
如果想要两个列表,就要用到拷贝
copy拷贝的是整个列表对象,而不仅仅是列表的引用
切片语法实现列表的拷贝
浅拷贝处理一维列表是没有问题的,处理嵌套列表会有问题
浅拷贝只是拷贝了外层对象,如果包含嵌套对象的话,拷贝的只是其引用,解决这个问题就需要用到深拷贝,借助到copy模块
他有浅拷贝、深拷贝
浅拷贝:
深拷贝:
列表推导式
将一个列表元素变大2倍,可以使用循环实现:
使用列表推导式实现:他的效率比循环 快上一倍
取第二列的元素
取对角线的元素:
循环是通过迭代逐个修改原列表的元素,而列表推导式是则是直接创建一个新的列表然后再赋值给原先的这个变量名
B视图通过*实现对嵌套列表进行拷贝,其实它拷贝的是对同一个列表的引用,内部嵌套的不是三个个不同的列表 ,而是对同一个列表的三次引用,通过列表推导式可以解决这个问题:
将每一个字符转为对应的Unicode编码保存为列表:ord内置函数是单个字符串转为对应的编码
二维列表变成一维列表
-:代表临时的变量 笛卡尔积
偶数和奇数的笛卡尔积:
列表推导式,比较复杂,后期代码不方便阅读,不好维护
元组:
元祖也是一个序列,既能像列表那样,同事容纳多种类型的对象,也拥有字符串不可变的特性
元组可以不带()
元组也支持切片操作,切片的含义是将目标对象中的元素以某种特定的组合导出,而非修改对象本身
元组虽然说是不可变的,但是元素里面是一个可变的列表,那么我们依然是可以修改里面的内容的