修改:可以分为单个修改,和多个修改
[ >>> arr [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> arr[4]=4 >>> arr [1, 2, 3, 4, 4, 6, 7, 8, 9] >>> arr[7:]=[2,2] >>> arr [1, 2, 3, 4, 4, 6, 7, 2, 2] >>> arr[7:]=[] >>> arr [1, 2, 3, 4, 4, 6, 7] >>> arr[7:]=[2,2] >>> arr [1, 2, 3, 4, 4, 6, 7, 2, 2] >>> arr[7:]=[1] >>> arr [1, 2, 3, 4, 4, 6, 7, 1] >>> arr[7:]=1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only assign an iterable
通过以上例子可以看出,可以指定某个元素进行赋值,原来值消失。也可以分片进行赋值。也可以把多个值用一个值进行替换,前提都是数组。如果是元素,就会有异常
删除操作:用del语句
>>> del arr[4] >>> arr [1, 2, 3, 4, 6, 7, 1]
以前操作都是基本操作,用类似赋值语句进行的操作。下面可以看一些方法,方法一般都是这样的调用,对象.方法(参数)
最常用的有:append(添加末尾),count(统计),extend(添加多个值),index(查找),insert(插入),pop(移除),remove(移除),reserse(反向),sort(排序),cmp(排序)。
添加:常用的添加方法,append,extend,insert,通过名字大概都知道什么意思,我们还是用例子来说明一下:
>>> arr [1, 2, 3, 4, 6, 7, 1] >>> arr.append(8) >>> arr [1, 2, 3, 4, 6, 7, 1, 8] >>> arr.extend([9,10]) >>> arr [1, 2, 3, 4, 6, 7, 1, 8, 9, 10] >>> arr.insert(4,5) >>> arr [1, 2, 3, 4, 5, 6, 7, 1, 8, 9, 10]
通过例子可以看出不同的情况添加用不同的方法。
统计:count方法,就是统计某个元素在数组中出现的次数:每出现一次加1,没有为0
>>> arr [1, 2, 3, 4, 5, 6, 7, 1, 8, 9, 10] >>> arr.count(1) 2 >>> arr.count(0) 0
查找:index方法,就是查询数组中第一次出现的位置,返回索引号。没有时报异常
>>> arr.index(1) 0 >>> arr.index(11) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 11 is not in list
删除1.pop方法可以用删除,通常会删除最后一个元素,并且返回值。这样可以实现数据结构中的栈(先进先出)。有参数的时候,传索引值,删除指定索引的位置。若索引不存在会有异常打出
[1, 2, 3, 4, 5, 6, 7, 1, 8, 9, 10] >>> arr.pop() 10 >>> arr.pop(1) 2 >>> arr.pop(15) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range
2.remove是删除第一个符合参数的元素,不返回任何信息,若元素不存在有异常报出
>>> arr.remove(3) >>> arr [1, 4, 5, 6, 7, 1, 8, 9] >>> arr.remove(11) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
两者比较:pop默认最后一个值,有参数是索引值,且返回删除值。remove参数是元素值,且没有返回值。两者都修改列表
反转:通俗的理解就是第一个和最后一个换换位置,第二个和倒数第二个换换位置,依次类推。可以看一下例子:
>>> arr [1, 4, 5, 6, 7, 1, 8, 9] >>> arr.reverse() >>> arr [9, 8, 1, 7, 6, 5, 4, 1]
反转方法:修改了数组本来的位置。
排序。sort,默认从小到大排列,不返回任何信息,只改变列表元素位置。cmp可以实现特定要求排序,类似java中Comparator接口中compare方法,在这就不说了。
>>> arr.sort() >>> arr [1, 1, 4, 5, 6, 7, 8, 9] >>> y=arr.sort() >>> print y None
sort(),不返回任何信息,只改变arr本身的值和反转方法类似