JS 的数组 (Array) 与 python 的列表 (List) 很相似, 本人因为之前学过 JS, 后来学习 python 感觉有些方法很容易混淆, 这里对常用的一些方法做些区分
增
删
改
查
排序
逆序
增加元素
1. 添加元素到末尾
- Array.push(x1, x2, x3, ...);
- //JavaScript 中, 可将 1 个或多个元素一次性添加到原数组末尾, 原数组改变, 返回值为原数组新长度
- List.append(x)
- #python 中, 一次只能添加 1 个元素到原列表末尾, 原列表改变, 无返回值
2. 添加数组 (或列表) 到末尾
- Array.concat(x1, x2, x3, ...);
- //JavaScript 中, 参数可以是数组或元素, 原数组不变, 仅返回值有用
- aList.extend(bList)
- #python 中, 参数只能是列表不能是元素, 一次只能接收一个参数, 原列表改变, 无返回值
3. 添加元素到开头 (仅 JavaScript)
- Array.unshift(x1, x2, x3, ...)
- //x1 变成第一个元素, x2 变成第二个..... 原数组改变, 返回值为新长度
- //python 中无相应的内置方法
4. 从中间插入元素 (仅 python)
- List.insert(index, x)
- #python 中, 其实可以向列表任意位置入插元素, index 是要插入位置的索引号, x 为要插入的元素, 原列表改变, 无返回值
- #JavaScript 中无相应的内置方法
- #python 中获取索引号用 List.index(x) 而 JS 中 indexOf 一般用于字符串 string.indexOf(), 数组的 indexOf() 查找的是严格等于 "===" 的索引号
删除元素
1. 在末尾删除元素 (JS 实现)
- Array.pop()
- //JS 代码, 原数组改变, 返回值为被删掉的末尾的元素
2. 在开头删除元素 (JS 实现)
- Array.shift()
- // 删除数组的第一个元素, 原数组改变, 返回值为被删掉的第一个元素
3. 在任意位置删除元素
- Array.splice(index, howmany, item1,....., itemX)
- //JS 代码 index 必需 howmany 必需 item1,....., itemX 可选
- // 删除从 index 处开始的零个或多个元素, 并添加 item1,....itemX 这些元素 原数组改变, 返回值是被删除元素的数组.
- List.pop(index)
- #python 代码 index(可选) 为要移除列表元素的索引值, 不能超过列表总长度 - 1, 默认 index=-1, 原列表改变, 返回值为被删掉的元素
- del(List(index))
4. 删掉列表中某个值 (python 实现)
- List.remove(x)
- #x 为要删掉的值, 但只会删掉第一个匹配到的 x 值 原列表改变, 无返回值
修改 (JS/python 通用)
a[index] = x;
查询 (切片)
- Array.slice(index1, index2)
- //JS 代码: 取半开区间 [index1, index2) 之间的元素, 一共有 index2-index1 个, 原数组不变, 返回值就是切片区间的元素组成的数组
- List[index1:index2:step]
- #python 代码 index1 必需 index2 可选 step 可选 同样也是半开区间 [index1,index2)
- # 原列表没变化 返回一个子列表
排序
- Arrat.sort(sortby)
- //JS 代码 sortby 可选 将原数组各元素按字符顺序排列 返回值就是排序后的数组 纯数字想按顺序排列必须要传参数
- list.sort(cmp=None, key=None, reverse=False)
- #python 代码 三个参数均为可选 reverse=False 代表升序排列, 若手动改为 True 则为降序排列, 功能同 reverse() 方法 原列表改变, 无返回值
逆序
- Array.reverse()
- //JS 代码 将原数组逆序, 返回值就是原数组逆序后的结果
- //Array.reverse() === Array result is true
- List.reverse()
- #python 代码 将原列表逆序 无返回值
来源: http://www.bubuko.com/infodetail-2899196.html