JS的數組(Array)與python的列表(List)很相似,因為之前學過JS,后來學習python感覺有些方法很容易混淆,這里對常用的一些方法做些區分
- 增
- 刪
- 改
- 查
- 排序
- 逆序
增加元素
1.添加元素到末尾
Array.push(x1, x2, x3, ...); //javascript中,可將1個或多個元素一次性添加到原數組末尾,原數組改變,返回值為原數組新長度
//js中,數組也可以作為元素,即可以把其他數組作為參數添加到原數組中
List.append(x) #python中,一次只能添加1個元素到原列表末尾,原列表改變,無返回值
2.添加數組(或列表)到末尾
Array.concat(x1, x2, x3, ...); //javascript中,參數可以是數組或元素,原數組不變,僅返回值有用
//如果要進行 concat() 操作的參數是數組,那么添加的是數組中的元素,而不是數組。
aList.extend(bList) #python中,參數只能是列表不能是元素,一次只能接收一個參數,原列表改變,無返回值
3.添加元素到開頭(僅javascript)
Array.unshift(x1, x2, x3, ...) //x1變成第一個元素,x2變成第二個..... 原數組改變,返回值為新長度 //python中無相應的內置方法
4.從中間插入元素
Array.splice(index,howmany,item1,.....,itemX) //js中的splice是個多功能方法,不僅能刪而且能增,直接對原數組操作 //返回的是被刪掉的元素組成的數組(如果有被刪的)
List.insert(index, x) #python中,其實可以向列表任意位置入插元素,index是要插入位置的索引號,x為要插入的元素,原列表改變,無返回值
#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個,原數組不變,返回值就是切片區間的元素組成的數組
//index1可選 默認0 index2可選 -1表示倒數第一個元素, -2表示倒數第二 如果不指定index2,則會從index1一直取到結尾的所有元素
//可以用array.slice(-1)[0]得到數組最后一個元素
List[index1:index2:step] #python代碼 index1和index2必需至少有一個 step可選 同樣也是半開區間[index1,index2) #原列表沒變化 返回一個子列表
排序
Array.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代碼 將原列表逆序 無返回值