列表
列表是由一系列按**特定顺序**排列的元素组成。首先,特定顺序这四个字表明列表是有一定顺序的,即元素相同但排序不同的是两个列表;其次,列表中的各个元素数据类型可以不相同(区分与c等各种语言)
访问列表元素
访问列表元素的方法主要有下标法和切片法。下标的方法用于获取列表中的单个值,切片方法用去获得子列表。
#定义一个spam的列表
>>>spam = ['cat', 'bat', 'rat', 'elephant']
#下标方法有正负下标之分,正下标法元素下标索引从0开始,表示第一个元素,依次+1
>>>spam[0]
'cat'
>>>spam[1]
'bat'
>>>spam[2]
'rat'
#负下标从-1开始,表示最后一个元素,依次减1
>>>spam[-1]
'elephant'
>>>spam[-2]
'rat'
>>>spam[-3]
'bat'
#切片获得的是子列表,这是一个左闭右开区间
#注意获得的是列表,即使只有一个元素也是一个列表,而不是单个元素
>>>spam[0:4]
['cat', 'bat', 'rat', 'elephant']
>>>spam[1:3]
['bat', 'rat']
>>>spam[0:-1] #正负下标可以通用表示spam[0:3]
['cat', 'bat', 'rat']
>>>spam[:2] #从第一个元素开始到spam[2]
['cat', 'bat']
>>>spam[1:] #spam[1]到最后一个元素
['bat', 'rat', 'elephant']
>>>spam[:] #整个列表
['cat', 'bat', 'rat', 'elephant']
>>>spam[1:2] #区别于spam[1]的返回结果
['bat']
列表的修改、添加和删除
列表元素的修改
列表元素修改只需要制定列表名和相关索引,再指定该元素新的值即可。
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>spam[0]=15 #修改元素值
>>>spam[0]
15
列表元素的添加
在列表末尾添加元素
仅将元素加到列表末尾,使用append()方法即可
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>spam.append('dog') #在尾部添加'dog'
>>>spam
['cat', 'bat', 'rat', 'elephant', 'dog']
>>>spam.append(12) #在尾部添加12
>>>spam
['cat', 'bat', 'rat', 'elephant', 'dog', 12]
在列表中插入元素
使用insert()方法在列表指定位置插入元素,需要指定新元素的索引和值。
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>spam.insert(0, 'dog') #第一个元素为索引,第二个元素为值,spam[0]处插入了新的元素
>>>spam
['dog', 'cat', 'bat', 'rat', 'elephant']
从列表中删除元素
从列表中删除元素有三种方法del,pop(),remove()
使用del方法删除元素
使用del删除指定元素需要直到元素的位置
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>del spam[0] #删除spam的第一个元素
>>>spam
['bat', 'rat', 'elephant']
del方法没有返回值,因此,用del方法删除的元素无法再次进行访问,因此通常要求再访问该元素时,我们采用pop()方法删除元素
使用pop()方法删除元素
pop()方法具有返回值,因此其删除的元素可以被访问,使用pop()方法可以选择直接删除列表尾的值或者删除指定位置的值。
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>a=spam.pop() #直接调用pop()方法删除列表尾部的元素
>>>spam
['cat', 'bat', 'rat']
>>>b=spam.pop(0) #删除索引位置0的元素
>>>spam
['bat', 'rat']
>>>a
'elephant'
>>>b
'cat'
使用remove()删除元素
如果只知道元素的值而不知道元素的索引位置,可以使用remove()方法
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>spam.remove('cat') #删除'cat'
>>>spam
['bat', 'rat', 'elephant']
方法remove只会删除列表中第一个出现的值,如果出现多次,需要循环删除
组织列表
列表排序
列表排序有sort()方法和sorted()方法。
sort()方法是列表的一个方法,会实际改变列表的值。
sorted()方法不会实际改变列表的值
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>sorted(spam)
['bat', 'cat', 'elephant', 'rat']
>>>spam #实际spam未发生变化
['cat', 'bat', 'rat', 'elephant']
>>>spam.sort()
>>>spam
['bat', 'cat', 'elephant', 'rat'] #实际spam发生变化
>>>spam.sort(reverse=True) #令reverse=True实现倒序排列
>>>spam
['rat', 'elephant', 'cat', 'bat']
反转列表
反转列表采用reverse()方法,注意区分其与倒序排列的区别。reverse()方法只是将原始顺序颠倒。
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>spam.reverse()
>>>spam
['elephant', 'rat', 'bat', 'cat']
确定列表的长度
len()函数返回列表中元素的个数
>>>spam = ['cat', 'bat', 'rat', 'elephant']
>>>len(spam)
4
列表复制
spam1=spam的操作不能复制一个列表,只是表示spam和spam1都指向同一个列表(改变其中任意一个列表值,两个列表都会发生改变),如果想要赋值列表可以用spam1=spam[:]