JS数组方法与python列表方法的比较

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代码   将原列表逆序   无返回值

原文地址:https://www.cnblogs.com/jx-z/p/10183676.html

时间: 2024-08-07 18:56:10

JS数组方法与python列表方法的比较的相关文章

js数组去重的4种方法

js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, j = this.length; i < j; i++) { if (this[i] === item) { return i; } } return -1; } Ar

JS数组与对象的遍历方法大全

本文简单解析各种数组和对象属性的遍历方法: 原生for循环.for-in及forEach ES6 for-of方法遍历类数组集合 Object.key()返回键名的集合 jQuery的$.each() underscore的_.each() 文中的范例基于以下数组和对象. ? 1 2 3 4 5 6 7 8 var arrTmp = ["value1","value2","value3"]; var objTmp = {     aa:"

【JS】JS数组添加元素的三种方法

1.push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 1).语法: arrayObject.push(newelement1,newelement2,....,newelementX) 参数 描述 newelement1 必需.要添加到数组的第一个元素. newelement2 可选.要添加到数组的第二个元素. newelementX 可选.可添加多个元素. 2).返回值: 把指定的值添加到数组后的新长度. 3).说明: push() 方法可把它的参数顺序添加到 arrayO

js数组的map与forEach方法的区别及兼容性用法

高级浏览器(包括ie9以上)支持map和forEach方法对数组循环遍历,用法基本相同,但有些区别必须知道,才能在项目中正确选择 原理: 高级浏览器支持forEach方法语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: 数组中有几项,那么传递进去的匿名回调函数就需要执行几次: 每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当

js数组去重的三种常用方法

第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 代码如下: Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){  var repeat = false;  for(var j = 0; j < res.length; j+

js数组去重的三种常用方法总结

第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 复制代码 代码如下: 1 Array.prototype.unique1 = function(){ 2 var res = [this[0]]; 3 for(var i = 1; i < this.length; i++){ 4 var repeat = false; 5 for(var j = 0; j < r

js数组去重的两种方法

数组去重这种问题经常会遇到,解决方法也有很多,这里就总结两种比较常用的方法. 方法一 第一种方法的思路:遍历数组里的元素,由第一个元素开始依次按照顺序与其后面的元素相比较,如果不同则不用管,相同则把其后所被比较的元素去除.这样所有元素循环一遍,数组中重复的元素就能全部去除. 代码: <script> var arr = [1, 5, 7, 6, 3, 2, 5, 4, 6, 9, 5, 1, 2, 3, 5, 4, 8, 9, 5, 4, 5, 0];     for (var i = 0;

JS数组去重的三种方法

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title>数组去重</title>     </head>     <body>         <script type="text/javascript">             //注意有一个元素是空的

js数组去重的4个方法

面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项.据我所知,百度.腾讯.盛大等都在面试里出过这个题目. 这个问题看起来简单,但是其实暗藏杀机. 考的不仅仅是实现这个功能,更能看出你对计算机程序执行的深入理解. 我总共想出了三种算法来实现这个目的: 1. Array.prototype.unique1 = function() { var n = []; //一个新的临时数组 for(var i = 0; i < this.length; i++) //遍历当前数组 {