Python基础教程系列:五、序列

列表也是序列的一种,所以对于列表的操作同样适用于列表。也可以通过下标或者切片操作来访问某一个或者某个子列表。那么列表和字符串有什么区别呢?首先字符串必须只能由字符组成,即便字符串中有数字,那也是字符类型的数字,不可直接用于数学计算,其次,字符串中的字符具有不可变性。但是列表是可以保留任意数目的Python对象的灵活容器,就像一个大箱子,什么对象都可以往里放。列表具有元素可变性,在序列中,列表是唯一一种支持元素可变性的数据结构。列表在形式上类似于C、Java中的数组,但与数组还是有很大区别的。数组必须要求数组类的元素具有唯一的数据类型,要么都是数字,要么都是字符等。

列表是由方括号[]来定义的。比如:aList = [123, ‘abc‘, 4.56, [‘inner‘, ‘list‘], 7-9j]     一个列表中包含整数类型,字符串类型、浮点类型、子列表、复数多种数据类型。

list(‘foo‘)  ---->[‘f‘, ‘o‘, ‘o‘],将字符串类型转化成列表类型。

如何访问列表中的元素呢?aList[0]  --->123    ,aList[3][1] --->‘list‘  ,有点二维数组的感觉。aList[:3] --->[123,‘abc‘,4.56]

aList[3] ---->[‘inner‘,‘list‘]

既然列表中的元素是可以改变的,那我们该如何更新列表中的元素呢?其实我们可以根据类似于数组操作,直接重新赋值即可,比如,aList[2]=5.67  --->aList = [123, ‘abc‘, 5.67, [‘inner‘, ‘list‘], 7-9j]  ,还可以进行追加操作append(),举个例子,aList.append("hello Python!") ---->aList = [123, ‘abc‘, 4.56, [‘inner‘, ‘list‘], 7-9j,"hello Python!"]

列表可变,那么可以追加修改就可以删除,删除主要有两种方法,要么知道这个元素是什么,根据内容删除,要么根据下角标删除,删除形式分别是aList.remove(123),    del aList[0]=====>aList = [‘abc‘, 4.56, [‘inner‘, ‘list‘], 7-9j]

我们还可以把for循环运用到列表里,[i * 2 for i in [8,-2,5]] ----->[16,-4,10]   ,[i for i in range(8) if i % 2 == 0] ---->[0,2,4,6],其中range(8)=0,1,2,3,4,5,6,7,不包含8

下面介绍一些操作函数吧,

cmp(),作比较的,不过,由于列表中的元素数据类型不同,所以比较大小相对复杂一些,实际运用中相对复杂的地方使用较少,具体用法之前提到到就不说了,把比较规则简单说一下,大家了解一下就OK了,

1. 对两个列表的元素进行比较.
    2. 如果比较的元素是同类型的,则比较其值,返回结果.
    3. 如果两个元素不是同一种类型,则检查它们是否是数字.
        a. 如果是数字,执行必要的数字强制类型转换,然后比较.
        b. 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
        c. 否则,通过类型名字的字母顺序进行比较.
    4. 如果有一个列表首先到达末尾,则另一个长一点的列表"大".
    5. 如果我们用尽了两个列表的元素而且所有元素都是相等的,那么结果就是个平局,就是说返回一个0.

和cmp()类似的还有max()/min(),由于数据类型的不一致,其精度都会随复杂度的升高而降低。

len()求长度,没啥说的,reversed()翻转列表的,sorted(),排序的,这里再强调一下,所谓的排序是字典顺序,或者你可以理解为ASCII顺序,T<s,因为大写字母T的ASCII码在小写字母s前面。

求和函数sum(),主要是春数值类型的, a = [4,5,6],sum(a) = 15.    sum(a,5) = 20

list()和tuple(),等下章我们讲完元组,我们再重点说这个,列表和元组间转换还是使用频率挺高的,比如你需要把一个已有的元组转成列表类型的(然后你就可以修改它的元素了),或者相反.

在教材中还有两个实例分别利用列表模拟队列和堆栈这两种数据结构,主要是列表的追加和删除操作,我这里就不讲了,可以当个练习题自己试一试,学过数据结构的同学一看就能看明白。

时间: 2024-07-29 23:40:09

Python基础教程系列:五、序列的相关文章

Python基础教程系列:七、字典

字典是Python语言中唯一的映射类型.映射类型不要求用数字值做索引就可以从一个容器中获取对应的数据项.你可以用键(key)直接映射到值,这就是为什么叫映射的原因,映射,我的理解就是索引,顺藤摸瓜就可以找到背后的幕后者.字典是Python中最强大的数据类型之一. 刚开始接触字典还是在Hadoop中的mapreduce,其实说白了就是键值对(key/value),所谓的索引通常是指key,而幕后者通常指的是value.每个key对应一个value,主要的好处是方面归类,而且按照key进行查找val

Python基础教程系列:九、文件操作

一.open()函数 open()以及file()(open()与file()等价,可以任意替换)提供了初始化输入/输出(I/O)操作的通用接口.open()函数成功打开一个文件后就会返回一个文件对象,说白了你就可以接着读写了,否则就bug了. 语法:file_object = open(file_name, access_mode='r', buffering=-1) 第一个参数是文件名或者路径(绝对或相对路径),第二个参数叫文件打开的模式,不写时默认是'r'模式.'r'模式是只读模式.'w'

python基础教程(五)

字符串基本操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作.但是,请注意字符串都是不可变的. 字符串的方法: 字符串从string 模块中"继承"了很多方法,这里只介绍一些特别有用的. 1.find find 方法可以在一个较长的字符串中查找子字符串.它返回子串所在位置的最左端索引.如果没有找到则返回-1. >>> 'with a moo-moo here. and a moo-moo the

Python基础教程系列:七、字典(续)

不好意思,昨天有急事耽搁了,今天我们接着说字典.首先通过key往字典中添加三条记录.其中方括号中的那就是key,等式右边的就是value,别学完了序列后,总感觉中括号中的那是下角标. 那么字典的更新,包括增.删.改也都分别作了介绍.删除整个字典相对较少,毕竟实际工作中不像做练习,随便删了就可以.那么真想删除整个字典,del dict1即可.其中pop(),这不就相当于出栈操作么,取出来了也就相当于删除了. 字典操作: 1.字典比较:cmp(),这个比较起来也比较复杂,毕竟也不是完全数与数比大小或

Python基础教程系列:八、条件与循环

其实作为条件判断语句或者循环语句,我们在前面已经多多少少涉及了一些,现在我们再做一些补充或者把几个要注意的地方说一下.主要有以下常用语句:if.while.for,以及相互搭配使用的else.elif.break.continue和pass. 我们挨个简单说一下,简单的一笔带过就可以了,因为大家都学了C,所以主要说一下与C的不同之处. 1.if与else: if expression:         语句1 语句2 -- 条件语句(expression)不需写在括号中,整个Python语言不使

Python基础教程系列:六、元组

实际上元组是跟列表非常相近的另一种容器类型.元组和列表看起来不同的一点是元组用的是圆括号而列表用的是方括号.而功能上,元组和列表相比有一个很重要的区别,元组是一种不可变类型.正因为这个原因,元组能做一些列表不能做的事情.比如用做一个字典的key.另外当处理一组对象时,这个组默认是元组类型.比如  x, y = 1, 2   ;   x, y ---->(1, 2) 所以呢,在这一章节,我们基本就不再从头到尾挨个说了,它和列表的基本操作都是一样的. 我们重点说一下元组和列表间的转换以及元组和列表的

Python基础教程(第五章 条件、循环和其他语句)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5329066.html______ Created on Xu Hoo 读者学到这里估计都有点不耐烦了.好吧,这些数据结构什么的看起来都挺好,但还是没法用它们做什么事,对吧? 下面开始,进度会慢慢加快.前面已经介绍过了几种基本语句(print语句.import语句.赋值语句).在深入介绍条件语句和循环语句之前,我们先来看看这几种基

python基础教程_学习笔记2:序列-2

序列-2 通用序列操作 序列相加 通过加号对列表进行连接操作: 列表 >>> [1,3,4]+[2,5,8] [1, 3, 4, 2, 5, 8] 字符串 >>> '134'+'258' '134258' 元组 >>> (1,2,3)+(2,5,8) (1, 2, 3, 2, 5, 8) 元素数据类型不同的列表 >>> [[1,3],[3,9]]+[[2,2],'abc'] [[1, 3], [3, 9], [2, 2], 'abc'

python基础教程_学习笔记8:序列_练习与总结_1

序列_练习与总结 每次处理一个字符 任务: 用每次处理一个字符的方式处理字符串. 方案: 可以创建一个列表,列表的子项是字符串的字符.python实际上并没有一个特别的类型来对应"字符"并以此和字符串区分开来.可以调用内建的list,用字符串作为参数: thelist=list(thestring) 也可以不创建一个列表,直接用for语句完成对该字符串的循环遍历: for c in thestring: do_something_with(c) 或者使用列表推导中的for来遍历: re