1.列表创建
Python中用中括号[ ]来表示列表,并且用逗号来分隔元素。列表的创建方式如下:
>>> list=['a','b','c','d',1,2,3,4]
当我们用print函数将该列表打印出来,中括号也会同步显示出来:
>>> print(list)
['a', 'b', 'c', 'd', 1, 2, 3, 4]
2.列表访问
列表中的每个元素都有索引(index),最左边的index为0,从左到右index依次加1。我们可以根据元素在列表中所在的索引位置(index)其进行访问,例如我们想打印list列表中的'b'这个元素:
>>> print(list[1])
b
另外我们也可以用list[i:j]来访问第i个元素到第j-1个元素的列表切片,如
>>> print(list[1:3])
['b', 'c']
Python 可以用list[i:]来表示第i个元素到最后一个元素,另外也可以用list[:j]来表示第一个元素到第j-1个元素,如
>>> print(list[2:])
['c', 'd', 1, 2, 3, 4]
>>> print(list[:3])
['a', 'b', 'c']
当我们想list[i:j:q]表示取第i个元素到第j-1个元素,step为q的元素,如list[1:6:2]表示list[1],list[3],list[5]的元素组成的列表,如
>>> print(list[1:6:2])
['b', 'd', 2]
注意当步长为正时,表示从左到右按照步长取元素。当步长为负时,表示从右到左取元素。因此如果想反转列表的元素顺序时可以用list[::-1],如
>>> print(list[::-1])
[4, 3, 2, 1, 'd', 'c', 'b', 'a']
3.修改列表元素
(1)直接赋值list[i]=xxx
>>> list=['a','b','c'] #创建列表
>>> print(list)
['a', 'b', 'c']
>>> list[0]='d' #将第0个元素改为'd'
>>> print(list)
['d', 'b', 'c']
(2)在列表末尾增加元素list.append()或者list.extend()
其中list.append('abc')将字符串'abc'作为一个整体插入列表,而list.extend('abc')将字符串每个字符视为单独元素插入列表。列表的加法操作和extend()方法是一样的效果。例如:
>>> list.append('abc')#在list末尾加入元素'abc'
>>> print(list)
['d', 'b', 'c', 'abc']
>>> list.extend('abc')#在list末尾依次加入元素'a''b''c'
>>> print(list)
['d', 'b', 'c', 'abc', 'a', 'b', 'c']
>>> list+='def'
>>> print(list) #在list末尾依次加入元素'd''e''f'
['d', 'b', 'c', 'abc', 'a', 'b', 'c', 'd', 'e', 'f']
(3) 在列表中任意位置插入元素list.insert()
>>> list=['a','b','c']
>>> print(list)
['a', 'b', 'c']
>>> list.insert(0,'d')
>>> print(list)
['d', 'a', 'b', 'c']
(4)del函数删除列表元素
>>> list=['a','b','c']
>>> print(list)
['a', 'b', 'c']
>>> del list[1]
>>> print(list)
['a', 'c']
(5)pop()方法删除列表元素
pop()方法可以将列表的最后一个元素弹出,并作为值返回。当pop()方法指定index时会将指定的index元素弹出,并作为值返回,如:
>>> list=['a','b','c','d']
>>> list.pop()#最后一个元素'd'弹出列表并返回
'd'
>>> print(list)
['a', 'b', 'c']
>>> list.pop(0)#第0个元素'a'弹出列表并返回
'a'
>>> print(list)
['b', 'c']
(6)remove()方法根据值删除元素
>>> list=['a','b','c','d']
>>> list.remove('b')
>>> print(list)
['a', 'c', 'd']
(7)reverse()方法将元素顺序反转
>>> list=['a','b','c','d']
>>> list.reverse()
>>> print(list)
['d', 'c', 'b', 'a']
(8)sort()方法将元素排序
sort()方法默认可以让元素进行从小到大排序,当想从大到小排序时可以使用sort(reverse=True)
>>> list=[2,4,1,5,8,7]
>>> list.sort()
>>> print(list)
[1, 2, 4, 5, 7, 8]
>>> list.sort(reverse=True)
>>> print(list)
[8, 7, 5, 4, 2, 1]
sort(key=function)可以将元素的函数结果来排序,如
>>> list=[2,-4,1,5,8,-7]
>>> list.sort(key=lambda x:x*x)#x平方函数,
>>> print(list)
[1, 2, -4, 5, -7, 8]
需要注意的是sort()方法会改变原来的list,当我们不想改变原来的list,可以使用sorted()函数,这样只有函数的返回值是排序的结果,原list不变,如
>>> list=[2,4,1,5,8,7]
>>> sorted(list)
[1, 2, 4, 5, 7, 8]
>>> print(list)
[2, 4, 1, 5, 8, 7]
>>> sorted(list,reverse=True)
[8, 7, 5, 4, 2, 1]
>>> print(list)
[2, 4, 1, 5, 8, 7]
(9)clear()方法清空列表
>>> list=[2,-4,1,5,8,-7]
>>> list.clear()
>>> print(list)
[]
4.其他函数和方法
(1)len()函数返回列表长度
>>> list=['a','b','c']
>>> len(list)
3
(2) count()方法返回元素的个数
>>> list=['a','b','c','b','b','a']
>>> list.count('b')
3
>>> list.count('a')
2
(3) index()方法返回元素的第一个index
>>> list=['a','b','c','b','b','a']
>>> list.index('b')
1
>>> list.index('c')
2
(4) copy()方法复制列表
copy()方法可以返回一个完全相同的列表,如
>>> list=['a','b','c','b','b','a']
>>> list1=list.copy()
>>> list1[0]='d' #改变列表list1的第0个元素为‘d’,不影响列表list
>>> print(list)
['a', 'b', 'c', 'b', 'b', 'a']
>>> print(list1)
['d', 'b', 'c', 'b', 'b', 'a']
当我们用等于号来赋值一个列表给另一个列表时,此时Python并没有创建一个新的列表,只是将原来列表的指针指到新列表上,改变新列表也会同时将老列表改掉,如
>>> list=['a','b','c','b','b','a']
>>> list1=list
>>> list1[0]='d'#改变list1的第0个元素,同时list的第0个元素也会改掉
>>> print(list)
['d', 'b', 'c', 'b', 'b', 'a']
>>> print(list1)
['d', 'b', 'c', 'b', 'b', 'a']