增---------------------------------------------------------------------------------------------------
#append()末尾追加元素,这个元素类型没有限制,和下边extend()做对比
>>> list3 = ['111','hello', 3333]>>> list3.append('2222') #无返回值,但改变了列表本身
>>>list3
['111', 'hello', 3333, '2222']>>> list3.append((555,['a','b'])) #append只接受一个参数
>>>list3
['111', 'hello', 3333, '2222', (555, ['a', 'b'])]#extend()该方法只能追加可迭代对象(序列),不能是数值类型的元素
>>> list4 = ["9", 9]>>> list4.extend([1,2]) #无返回值,但改变了列表本身
>>>list4
['9', 9, 1, 2]>>> list4.extend(((1,2),[3,4],{'a':1,'b':2})) #extend()只能接收一个参数
['9', 9, 1, 2, (1, 2), [3, 4], {'a': 1, 'b': 2}]>>> list4.extend("python") #这里要注意:他只把字符串当作是序列来处理,而不是数值,效果看打印
>>>list4
['9', 9, 1, 2, (1, 2), [3, 4], {'a': 1, 'b': 2}, 'p', 'y', 't', 'h', 'o', 'n']>>> list4.extend(1)
Traceback (most recent call last):
File"", line 1, in TypeError:'int' object is not iterable #提示object不是可迭代对象
#insert()指定对象插入列表的指定位置,注意insert是插在前面,list5.insert(-1,'a')
>>> list5 = ['aaa', 'bbb', 'ccc']>>> list5.insert(0,1) #无返回值,但改变了列表本身
>>>list5
[1, 'aaa', 'bbb', 'ccc']>>> list6 =[]>>> list6.insert(0, 1)>>>list6
[1]>>> list5 =[]>>> list5.insert(-1, 'a')>>> list5.insert(-1, 'b')>>>list5
['b', 'a'] #注意这里为什么b会在a的前面,就是因为insert是占的a的位置,把a挤到后面去了
>>>删---------------------------------------------------------------------------------------------------
#remove()移除列表中某个值的第一个匹配项。注意和pop对比
>>> list7 = ['hello', 'world', 'hello', 'python']>>> list7.remove("hello") #他移除了靠前的"hello",无返回值,但改变了列表本身
>>>list7
['world', 'hello', 'python']>>> list7.remove("xxxx") #要移除的值必须在列表中,否则报错
Traceback (most recent call last):
File"", line 1, in ValueError: list.remove(x): xnot inlist#pop()根据索引移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
>>> list6 = ['a', 'b', 'c', 'd']>>> list6.pop() #有返回值,返回被删除的元素值
'd'
>>>list6.pop(0)'a'
>>> list6.pop(5) #注意索引必须在列表中存在
Traceback (most recent call last):
File"", line 1, in IndexError: pop index out of range#索引不在列表之内
>>> list6.pop((0,2)) #注意他只接收一位整数
Traceback (most recent call last):
File"", line 1, in TypeError:'tuple' object cannot be interpreted as an integer #object不能解释为整数
#del 可以删除元素,也可以删除整个列表
>>>list1
[9, 1, 2, 'a', 3]>>> del list1[1]>>>list1
[9, 2, 'a', 3]>>> del list1
>>> list1 #注意del删除整个列表是包括定义也一起删除了,而clear只是清空了容器
Traceback (most recent call last): #里面的内容,定义没删除
File "", line 1, in NameError: name'list1' is notdefined#clear()清空列表
>>>list1 = [1, 2, 'a']>>>list1.clear()>>>list1
[]
改---------------------------------------------------------------------------------------------------
#[] 通过索引来改值
>>> a = [1,2,3]>>> a[0]='a'
>>>a
['a', 2, 3]#[1:4:2] 根据切片来改
>>> a = [1,2,3]>>> a[1:3] = [66,99,77]
[1, 66, 99, 77] #注意当位数大于切片的长度时,多余的元素也会插入到列表中
>>>list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> list1[slice(1,6,2)] = ['a', 'b', 'c']>>>list1
[1, 'a', 3, 'b', 5, 'c', 7, 8, 9]>>> list1[slice(1,6,2)] = ['a', 'b', 'c', 'd', 'f'] #这个方法会索引插入的区别在于:这个方法不能多插或少插
Traceback (most recent call last):
File"", line 1, in ValueError: attempt to assign sequence of size5 to extended slice of size 3查---------------------------------------------------------------------------------------------------
#[] 根据索引取值
>>> list2 = ['23', '34', '11', '77', 'aa', 'bc']>>> list2[1] #有返回值,返回索引对应的值,这个支持多维列表
'34'
>>> list2[11]
Traceback (most recent call last):
File"", line 1, in IndexError: list index out of range#[1:5:2] 根据切片来查
[1, 66, 99, 77]>>> list1 = [1,2,3,4,5,6,7,8,9]>>> list1[1:6:2]
[2, 4, 6]>>> list1[slice(1,6,2)]
[2, 4, 6]>>> list1[slice(5)]
[1, 2, 3, 4, 5]>>> list1[slice(1,3)]
[2, 3]#index()根据值取索引,返回第一个匹配到的索引,当没匹配到会报错
>>> list8 = ['a', 'a','b', 'c', 'd']>>> list8.index('a') #有返回值,返回匹配到的第一个索引,其查询作用,未改变列表本身
0>>> list9 = ['a', 'a','b', 'c', 'd',['ee', 'ff']] #注意当列表是多个维度时,里层的值是找不到的
>>> list9.index('ee')
Traceback (most recent call last):
File"", line 1, in ValueError:'ee' is not inlist#count()统计某个元素在列表中出现的次数
>>> list10 = ['12','23', '34', '34',34]>>> list10.count('34') #有返回值,返回次数,起查询作用,未改变列表本身
2
>>> list10.count('0') #不存在的也是可以查的,返回0
0
其他--------------------------------------------------------------------------------------------------
#copy() 复制列表,这个只针对一维列表
>>>list2 = [3, 4,'python']>>> a = list2.copy() #有返回值
>>>a
[3, 4,'python']#copy.deepcopy() 深浅复制,当列表是多个维度的时候,必须使用这个方法进行复制
>>> a = [1,2,['a','b'],3]>>>importcopy>>>copy.deepcopy(a) #有返回结果
[1,2,['a','b'],3]#reverse()用于反向列表中元素,注意不是倒序的意思
>>> list11 = ['Google', 'Runoob', 'Taobao', 'Baidu']>>> list11.reverse() #没有返回值
>>>list11
['Baidu', 'Taobao', 'Runoob', 'Google']#sort()用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
#注意;列表的中元素必须是同一种数值类型,否则使用该方法会报错
>>> list12 = ['23', '34', '11', '77', 'aa', 'bc']>>> list12.sort() #没有返回值,默认按升序排列
>>>list12
['11', '23', '34', '77', 'aa', 'bc']>>> list12.sort(reverse=True) #没有返回值,设置reverse=True按降序排列
>>>list12
['bc', 'aa', '77', '34', '23', '11']>>> def takeSecond(elem): #获取列表的第二个元素
... return elem[1]>>> random = [(2, 2), (3, 4), (4, 1), (1, 3)]>>> random.sort(key=takeSecond) #key 指定可迭代对象中的一个元素来进行排序
>>>random
[(4, 1), (2, 2), (1, 3), (3, 4)]