1、创建List
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。相当于我们在C语言中说的数组。
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates # 打印classmates变量的内容
['Michael', 'Bob', 'Tracy']
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
2、按照索引顺序访问list
List中的元素的索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。
举个例子:
IndexError意思就是索引超出了范围,因为上面的list只有3个元素,有效的索引是 0,1,2。
所以,使用索引时,千万注意不要越界。
3、按照索引倒序访问list
倒序访问的情景也有很多,比如说我们要在一个List中找到最后一个数,但是这个数组内有很多元素,一个一个顺序数下去很浪费时间,那么怎么直接输出最后一个元素呢?
这时候就要用到倒序访问,也就是把最后一个元素的索引记作“-1”,那么倒数第二个元素的索引就是“-2”,以此类推下去。下面来看实例:
4、向list中添加新元素
现在我们要向一个List中添加一个元素,比如说班里转来一个同学然后要把他的名字加进来,有下面两种方法:
第一,用 list 的 append() 方法,把新同学追加到 list 的末尾:
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.append('Paul')
>>> print L
['Adam', 'Lisa', 'Bart', 'Paul']
ap**pend()总是把新的元素添加到 list 的尾部。**
那么问题来了,如果说这个list是按照里面每位同学的成绩排名的呢,要加进来的这位同学是满分要加在第一个怎么办?
方法是用list的 insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.insert(0, 'Paul')
>>> print L
['Paul', 'Adam', 'Lisa', 'Bart']
L.insert(0, ‘Paul’) 的意思是,’Paul’将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。
命令行中实验效果如下:
5、从list中删除元素
前面新加进来的那位Paul同学又要转走了,我们要把他从list中除去,也有两种方法:
如果Paul同学排在最后一个,我们可以用list的pop()方法删除:
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L.pop()
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 ‘Paul’。
如果Paul同学不是排在最后一个怎么办?比如Paul同学排在第三:
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
要把Paul踢出list,我们就必须先定位Paul的位置。由于Paul的索引是2,因此,用 pop(2)把Paul删掉:
>>> L.pop(2)
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
实验截图如下:
6、替换list中的元素
假设现在班里仍然是3名同学:
>>> L = ['Adam', 'Lisa', 'Bart']
现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班级成员名单,我们可以先把Bart删掉,再把Paul添加进来。
另一个办法是直接用Paul把Bart给替换掉:
>>> L[2] = 'Paul'
>>> print L
L = ['Adam', 'Lisa', 'Paul']
对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
由于Bart还可以用 -1 做索引,因此,下面的代码也可以完成同样的替换工作:
>>> L[-1] = 'Paul'
下面是我实验验证的截图:
最后,关于List的插入删除替换元素的操作就到这里了。了解到这一节就感受到了Python的简洁!!!在其他语言中很复杂的操作在这里一句话就可以搞定!!!
我主要是在慕课网上学习,然后顺便把笔记和实证搬到博客上来,如果有错误请指出哈!