您的位置:首页 > 编程语言 > Python开发

【Python基础学习篇】Python列表

2014-09-15 00:00 375 查看
列表(List)通常作为函数的返回类型。列表和元组相似,也是由一组元素组成,列表可以实现添加、删除和查找操作,元素的值可以被修改。

一、列表的创建

列表是由一系列元素组成,所有的元素都被包含在一对方括号中。列表创建后,可以执行添加、删除或修改操作。

列表的创建格式如下所示:

list_name = [元素1,元素2,...]


列表的添加可以调用append(),该方法的声明如下所示:

append(object)


其中,object可以是元组、列表、字典或任何对象。append()每次添加的新元素将排列在列表的尾部。

列表的删除可以调用remove(),该方法的声明如下所示:

remove(value)


该方法将删除元素value。如果value不在列表中,Python将抛出ValueError异常。

例子:演示列表的创建、添加和删除操作。

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape","orange"] print list print list[2] list.append("watermelon") list.insert(1,"grapefruit") print list list.remove("grape<
4000
/span>") print list print list.pop()#pop()取出列表的最后一个元素 print list list.remove("a") print list


输出结果:

---------- python2.7 ---------- ['apple', 'banana', 'grape', 'orange'] grape ['apple', 'grapefruit', 'banana', 'grape', 'orange', 'watermelon'] ['apple', 'grapefruit', 'banana', 'orange', 'watermelon'] watermelon ['apple', 'grapefruit', 'banana', 'orange'] Traceback (most recent call last): File "Noname1.py", line 16, in <module> list.remove("a") ValueError: list.remove(x): x not in list 输出完成 (耗时 0 秒) - 正常终止


特别说明:

如果list列表中存在两个相同的元素,此时调用remove()移除同名元素,将只会删除list列表中位置靠前的元素。

二、列表的使用方法

列表的使用方法与元组十分相似,同样支持负索引、分片以及多元列表等特性,但是列表中的元素可以修改,而且存在一些处理列表的方法。

例子:演示负索引、分片和遍历二元列表的方法。

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape","orange"] print list[-2] print list[1:3] print list[-3:-1] list = [["apple","banana"],["grape","orange"],["watermelon"],["grapefruit"]] for i in range(len(list)): print "list[%d]:"% i,"", for j in range(len(list[i])): print list[i][j],"", print


输出结果:

---------- python2.7 ---------- grape ['banana', 'grape'] ['banana', 'grape'] list[0]: apple banana list[1]: grape orange list[2]: watermelon list[3]: grapefruit 输出完成 (耗时 0 秒) - 正常终止


列表实现了连接操作的功能,列表的连接提供了两种方法

1、调用extend()连接两个不同的列表;

2、使用运算符+或+=

例子:演示列表的连接功能。

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list1 = ["apple","banana"] list2 = ["grape","orange"] list1.extend(list2) print list1 list3 = ["watermelon"] list1 = list1 + list3 print list1 list1 += ["grapefruit"] print list1 list1 = ["apple","banana"] * 2
print list1


输出结果:

---------- python2.7 ---------- ['apple', 'banana', 'grape', 'orange'] ['apple', 'banana', 'grape', 'orange', 'watermelon'] ['apple', 'banana', 'grape', 'orange', 'watermelon', 'grapefruit'] ['apple', 'banana', 'apple', 'banana'] 输出完成 (耗时 0 秒) - 正常终止


三、列表的查找、排序与反转

列表除了可以进行添加、删除等操作外,还提供了查找元素的方法。列表的查找提供了两种方式

1、使用index方法返回元素在列表中的位置;

2、使用保留字in来判断元素是否在列表中。

例子:演示列表的查找方法

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape","orange"] print list.index("grape") print list.index("orange") print "orange" in list


输出结果:

---------- python2.7 ----------
2
3 True 输出完成 (耗时 0 秒) - 正常终止


列表提供了排序和反转的方法

例子:

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape","orange"] list.sort() print "Sorted list:",list list.reverse() print "Reversed list:",list


输出结果:

---------- python2.7 ---------- Sorted list: ['apple', 'banana', 'grape', 'orange'] Reversed list: ['orange', 'grape', 'banana', 'apple'] 输出完成 (耗时 0 秒) - 正常终止


说明:

sort()提供了参数reverse用于控制元素排序的顺序。如果不提供参数,默认采用首字母升序排序。如果设置参数reverse=True,则采用首字母降序排列。

注意:

在Python中,列表是由类list实现的,使用函数help(list)查看list类的定义,可以快速了解列表所包含的方法。

列表的常用方法
方法名 说明
append(object)在列表的末尾添加一个对象object
insert(index,object)在指定的索引index处插入一个对象object
remove(value)删列表中首次出现的value值
pop([index])删除索引index指定的值,如果index不指定,则删除列表中最后一个元素
extend(iterable)将iterable指定的元素添加到列表的末尾
index(value,[start,[stop]])返回value现在出现在列表中的索引
sort(cmp=None,key=None,reverse=False)列表的排序
reverse()列表的反转

四、用列表实现堆栈和队列

堆栈和队列是数据结构中常见的数据结构,使用列表的append()、pop()方法可以模拟这两种数据结构。

1、堆栈的实现

堆栈是指最先进入堆栈的元素最后才输出,符合后进先出的原则。栈的插入、弹出是通过栈首指针控制的。当插入一个新的元素时,指针移到新元素的位置,当弹出一个元素时,指针移到下面一个元素的位置,即原堆栈倒数第2个元素的位置,该元素称为栈顶元素。

堆栈的实现方法是:调用append()可以把一个元素添加到堆栈的顶部,调用pop()方法可以把堆栈中的最后一个元素弹出来。

假设有一个堆栈["apple","banana","grape"],要向堆栈中添加一个新的元素“orange”。列表实现堆栈的原理如下:





说明:

“apple”是列表中第1个进入的元素,所以在堆栈的最顶端。电泳append(“orange”)后,程序把”orange”元素插入到堆栈的顶部。此时栈的指针移动到元素“orange”,栈中包含4个元素,“orange”在堆栈的顶部。然后调用pop(),弹出顶部的元素“orange”,栈的指针移到“grape”。

例子:列表模拟堆栈的方法

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape"] list.append("orange") print list print "弹出的元素:",list.pop() print list


输出结果:

---------- python2.7 ---------- ['apple', 'banana', 'grape', 'orange'] 弹出的元素: orange ['apple', 'banana', 'grape'] 输出完成 (耗时 0 秒) - 正常终止


2、队列的实现

队列是指最先进入队列的元素最早输出,符合“先进先出”的原则。队列的插入、弹出是通过队首和队尾指针控制的。当插入一个新的元素时,队尾指针移到新元素的位置,当弹出一个元素时,队首指针移到原队列中第2个元素的位置,该元素成为队列的第1个元素。队列也是通过调用append()和pop()方法实现的,但是pop()的调用方式有所不同,通过调用pop(0)弹出队列最前面的元素。

假设有一个队列["apple","banana","grape"],要向队列中添加一个新的元素“orange”。

列表实现队列的原理如下:





说明:

apple是队列中第1个进入的元素,所以置于队列的最前端。调用append(“orange”)后,程序把orange元素插入到队列的尾部,队尾指针移到元素orange。此时队列中包含4个元素,orange置于队列的尾部,然后调用pop(0),弹出队列最前面的元素apple,队首指针移到元素banana,从而实现了先进先出的队列结构。

例子:用列表模拟队列的方法

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: leexide@126.com
list = ["apple","banana","grape"] list.append("orange") print list print "弹出的元素:",list.pop() print list


输出结果:

---------- python2.7 ---------- ['apple', 'banana', 'grape', 'orange'] 弹出的元素: orange ['apple', 'banana', 'grape'] 输出完成 (耗时 0 秒) - 正常终止
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: