【Python基础学习篇】Python列表

列表(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: [email protected]

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: [email protected]

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: [email protected]

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: [email protected]

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: [email protected]

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: [email protected]
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: [email protected]
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 秒) - 正常终止
时间: 2024-10-19 08:50:51

【Python基础学习篇】Python列表的相关文章

python基础学习_目录列表

第一天: http://xiong51.blog.51cto.com/5239058/1962268 1.1 python版本 1.2 python安装 1.3 python解释器 1.4 字符集 1.5 运算符 1.6 条件判断 1.7 脚本示例 第二天: http://xiong51.blog.51cto.com/5239058/1962935 2.1 for 扩展用法 2.2 格式化字符串 2.3 数据类型     2.3.1 整数     2.3.2 符点型     2.3.3 字符串

【Python基础学习篇】Python基本语法

一.Python的文件类型 Python的文件类型主要分为3种,分别是源代码.字节代码和优化代码. 1.源代码 以py为扩展名 2.字节代码 Python源文件经过编译后生成扩展名为pyc的文件,pyc是编译过的字节文件.这种文件不能使用文本编辑工具打开或修改. 下面这段脚本可以把hello.py文件编译为hello.pyc文件 import py_compile py_compile compile("hello.py") 将此脚本保存为以py为扩展名的文件,运行后即可得到hello

python 基础学习之 python怎么制作第一个直方图 散点图 折线图 非常简单 利用python画图 python利用numpy画图 我用python制作第一个直方图 散点图 折线图

思路 首先声明 :非常简单  最简单的入门就是 直接拷贝几行代码看看效果 运行玩玩 注意: 本文采用窗口弹出运行显示的方式   可能需要网页显示图表 并且实时生成可能需要另找办法  暂时不处理. 安装numpy python文件导入numpy 复制几行代码 保存即可 在目录下 直接点击运行python文件  就会弹出一个类似cmd的小黑窗  另外再弹出一个绘制出来的图表 完成 关闭的时候 关闭图片  小黑窗自动回关闭. 部分效果图如下 代码参考 Python干货:分享Python绘制六种可视化图

【Python基础学习篇】Python字典

字典(Dictionary)是由"键-值"对组成的集合,字典中的"值"通过"键"来引用. 一.字典的创建 字典由一系列的"键-值"(key-value)对组成,"键-值"对之间用"逗号"隔开,并且被包含在一对花括号中. 创建字典的格式如下: dictionary_name = {key1:value1,key2:value2,...} 如果需要创建一个空的字典,只需要一对花括号即可,如下

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

【Python基础学习篇】Python序列

序列是具有索引和切片功能的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列. 例子:序列的索引功能 #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v3.3 #Author: [email protected] #索引操作 tuple = ("apple","banana","grape","orange&

【Python基础学习篇】Python元组

元组是Python中内置的一种数据结构.元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组是写保护的,即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的元素代表不同的数据项. 一.元组的创建 Tuple(元组)由一系列元素组成,所有元素被包含在一对圆括号中.创建元组时,可以不指定元素的个数,相当于不定长的数组,但是一旦创建后就不能修改元组的长度. 元组创建的格式如下所示: tuple_name = (元素1,元素2,...) 例子:元组的初始化 t

【Python基础学习篇九】Python字符串

一.字符串的操作 字符串是Python的一种基本类型,字符串的操作包括字符串的格式化.字符串的截取.过滤.合并.查找等操作. 二.字符串的格式化 Python将若干值插入到带有"%"标记的字符串中,从而可以动态的输出字符串. 字符串的格式化语法如下: "% s" % str1 "%s %s" % (str1,str2) 例子: #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7

【Python基础学习篇】Python控制语句

一.结构化程序设计 结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块. 下图为描述判断摸个数字是属于正数.负数还是零的流程图. 结构化程序设计的主要方法是-自顶向下.逐步细化.把需要解决的问题分成若干个任务来完成,再对每个任务进行设计,逐步细化. 结构化程序设计分为3中结构: 1.顺序结构 2.判断结构 3.循环结构 --------------------------------------------------------------------------