这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战
1. 列表 – list【有序可修改】
创建
- x = [1, 2, 3]
- x= list(range(起始,终止, 步长))
- 推导式 -- x = [表达式 for i in range() if ]
- [a] * 3 只是创建3个指向list的引用,一旦a改变,x中的3个a也会改变
a = [0] * 3
x = [a] * 3
x = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
添加
- 末尾 -- append【当作一个整体放在末尾的第一个位置】/ extend 【所有东西依次添加在末尾后】
-
x = ['11'] -
x.append([22, 33]) -- x = ['11', [22, 33]] -
x.extend([22, 33]) -- x = ['11', 22, 33]
- 随即位置 -- insert(索引位置,值)
删除
- pop(指定索引位置) -- 不填默认删最后一个 -- 删后还能用
- remove(指定删除的元素) -- 要填
- del x[起始删除:最后删除位置] -- 删后即焚【没了】
获取
- x[起始 : 终止 : 步长] -- 【所有的起始终止都是左闭右开】
- 浅拷贝 -- y = x[:] -- 对x排序等操作不会影响y
- 深拷贝 -- y = x -- 对x的操作都会影响到y一起变 如果 x = [[1, 2, 3], [4, 5, 6]] x[0][0] = 66 深拷贝和浅拷贝都会变!!!
常用操作符
- == 一模一样为true
- 【拼接,相当于extend】【创建新list对象 消耗多余内存】【extend,append,insert 直接改变原数组中】
- 复制 -- [1, 2] * 3 = [1, 2, 1, 2, 1, 2]
- in/ not in -- 在里面/不在里面 -- 成员关系
其他方法
- list.count(obj) -- 某数出现的次数
- list.index(obj, 起始位置,终止位置) -- 某数出现的索引位置
- list.reverse() -- 反向列表中的元素
- sort (key = 函数) -- 根据函数的返回值进行排序,比如是根据二维数组的第二位进行排序
2. 元组 – tuple 【有序不可修改】
- 基本操作同列表 -- 只有一个元素要加逗号,否则会被认为整型等 -- 【(1,)】
- 创建 直接赋值 tuple(range()) 推导式 乘
- 创建二维元组 x = (1, 2, 3), (4, 5, 6) print(x) -- ((1, 2, 3), (4, 5, 6))
- 没有添加,删除
更新和删除一个元组 -- 对元组内部的值进行操作- 更新 x = (1, 2, 3, 5) x1 = x(:2) + (4, ) + x(2: )
- 删除 x = (1, 2, 3, [4, 5]) x[3][0] = 6
- 获取 -- x [起始,终止,步长]
- 常用操作符 -- ==, + ,*, in/ not in
- 其他方法 -- 由于不可变,只有 count和index
- 解压
一维数组
t = (1, 2, 3)
(a, b, c) = t
print(a, b, c)
二维数组
t = (1, 2, 3, (4, 5))
(a, b, c, (d, e)) = t
print(a, b, c, (d, e))