【Python基础学习篇】Python列表

来源:互联网 发布:js new york怎么样 编辑:程序博客网 时间:2024/05/19 10:16

列表(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.comlist = ["apple","banana","grape","orange"]print listprint list[2]list.append("watermelon")list.insert(1,"grapefruit")print listlist.remove("grape")print listprint list.pop()#pop()取出列表的最后一个元素print listlist.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.comlist = ["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.comlist1 = ["apple","banana"]list2 = ["grape","orange"]list1.extend(list2)print list1list3 = ["watermelon"]list1 = list1 + list3print list1list1 += ["grapefruit"]print list1list1 = ["apple","banana"] * 2print 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.comlist = ["apple","banana","grape","orange"]print list.index("grape")print list.index("orange")print "orange" in list

输出结果:

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

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

例子:

#!/usr/bin/env python# -*- coding=utf-8 -*-#Using GPL v2.7#Author: leexide@126.comlist = ["apple","banana","grape","orange"]list.sort()print "Sorted list:",listlist.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”。列表实现堆栈的原理如下:

1

说明:

   “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.comlist = ["apple","banana","grape"]list.append("orange")print listprint "弹出的元素:",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”。

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

1

说明: 

    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.comlist = ["apple","banana","grape"]list.append("orange")print listprint "弹出的元素:",list.pop()print list

输出结果:

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

 

0 0
原创粉丝点击