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

【Python基础学习篇】Python列表

2014-09-15 21:30 519 查看
列表(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")
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 秒) - 正常终止


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: