python学习之列表与元组

    xiaoxiao2021-03-25  87

    0. 写在前面

    今天,我们先来介绍python里的数据的基本组成方式。 在python里面有这些的高级父类,叫做容器,容器包含但不仅限于以下3类:序列、映射与集合。 其中,Python共有6中内建的序列:列表、元组、字符串、Unicode字符串、Buffer、Xrange对象。 下面先简单介绍一下列表和元组: 1)列表,就如同数组一样,不过各个元素可以是不同的,比如:

    Edward=[‘a’,2,’d’]

    而且,列表是可以嵌套的,比如:

    Edward=[‘a’,2,’d’] John=[‘b’,3,’c’] Database=[Edward,John]

    这样都是可以得。 2)那么元组又是什么呢,简而言之,元组就是不可变的列表,就是这样简单。

    1. 序列

    那么这个所谓的序列,又和其他语言的列表有什么不同呢?

    不同点1:索引的使用 相比较所有语言的列表的使用方式都是list[index]来讲,python也没有例外,它同样采用相同的方式来进行索引,而不同的是,它可以使用负值来进行索引,比如list[-1]就代表的是list的右边第一个,以此类推,这样这个列表就可以倒着来数了。 那么,除了这个不同点,另外还有什么不同点吗?

    不同点2: 列表的添加 你以为是说list.add()吗?不不不,Python里面的使用都是很简洁的。 如果我们要建立一个数组,可以这样

    Number=[‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’10’]

    好的,我们先写这么多,但是我们现在想输出的是序数词,比如1st,2nd,3rd,4th等等,怎么办呢?我们接下来再写一个数组:

    Endings=[‘st’,’nd’,’rd’,’th’, ’th’, ’th’, ’th’, ’th’, ’th’, ’th’]

    好的,这样我们的序数词,就出来了。 等下,是不是太麻烦了,如果要写100个,1000个怎么办?再编程,NO,python可以这样写:

    Endings=[‘st’,’nd’,’rd’]+7*[‘th’]

    没错,你没有看错,它的数组可以这样来用,是不是特别方便!难道,只有这两点不同了吗?

    不同点3: 分片 列表的索引也是可以使用以下形式表示:

    Tag=[’Hello’,’My’,’Name’,’Is’,’Stiven’,’Yi’,’Liu’,’Nice’,’To’,’See’,’You’]

    我们只想要名字,该怎么办?好像用原来的方法挺困难的,不过看一下下面的表示 Name=Tag[4:-4],对没错,就是这样任性,当然,现在其他语言好像也支持这种索引了,不过课本上教的,可没有这种表示方法哦。 但是如果我们要把最后一个元素也加上,那么只能用一下表示方式: Tag[4:],这样就可以把从第四个元素到最后的所有元素都包含了。 当然,这是不是让你想起来那个foreach()了呢?是不是说for()循环更熟悉一些? 可能我们之前要找到一个列表的偶数位的元素成为一个列表,要写好几句话,不过,在python这里,只需要一句话,我们就用上面的例子就可以:

    Double= Number[0:10:2]

    哇,这简直不就是for()循环吗?没错,它就是for()循环:for(int i=0;i<10;i+=2),这样看起来是不是更明白一些?而且偷偷告诉你,步长也是可以为负值的哦。

    现在,我们讨论序列的一些运算了,主要包括,序列的相加,序列的乘法(我们刚才提过一点点),成员资格,长度,最小值,最大值等等。 1、 序列的相加: 序列相加只需要注意,两个序列的类型是一样的才能进行相加,这点不用我过多描述吧。我想强调的是下面这种: [1,2,3]+[4,5,6] 这种相加,得出的结果是[1,2,3,4,5,6],但是如果你想得到[1,2,3,[4,5,6]]那你就不能使用+号了,这个内容,在接下来的章节中,会有所提及。 2、 序列的乘法,你只需要把所需要的部分当作是数一样即可: [42]*5,得出的结果就是[42,42,42,42,42],就是这么简单。 3、序列的成员资格,即成员是否在序列内。Python使用的和其他语言相同,in这个词的意思实在是在明显不过了,它返回的是一个True/False,即布尔型变量,例如:

    Permission=’rw’

    ‘w’ in Permission,其返回值即为True 4、序列的长度,最大值,最小值.相信大家对于len,max,min的使用并不陌生的,但是注意的是,Python的这些函数,并不是像其他语言一样,list.len()来使用,而是len(list)这样使用。

    这样,我们就把序列的一些普遍特性讲解过了,下面进行列表和元组的详细讲解:

    2. 列表

    列表作为Python中出现的如此频繁的数据结构,可以说是其中坚力量。除去上面所说的普遍特性,下面,我们想讲一讲列表的自身的特性: 1、 list函数 这个函数挺熟悉的吧,他可以创建一个列表,List(‘Hello’)得出的结果是[‘H’,’e’,’l’,’l’,’o’] 2、 基本操作 Names=[‘a’,’b’,’c’,’d’] 删除成员,它长这样: del names[2],结果就是[‘a’,’b’,’d’],特殊吧,不过挺好用的。 分片赋值,除了之前所说的,分片赋值还可以执行插入 Nums=[1,5];Numbers[1:1]=[2,3,4]其结果就是[1,2,3,4,5] 3、 下面我们说列表的方法

    1) append方法,这个方法很熟悉了,这次是在后面加的尾巴:lst.append()

    2) count方法,这个方法不是说列表的成员数,而是有参数的,其表示该参数在列表里出现的次数。Nums.count(1)表示1在Nums里出现的次数。

    3) extend方法,这个方法就比较特殊了,他就相当于是在列表后追加一个列表里的内容,和append方法不同的是,append()追加的是一个元素,而extend是一个列表,一下来说明: a=[1,2,3];b=[4,5,6] a.append(b),a=[1,2,3,[4,5,6]] a.extend(b);a=[1,2,3,4,5,6]

    4) index这个方法就是从列表中找出第一个匹配项的索引位置。

    5) insert没啥好讲的,跟其他语言相同。

    6) pop,这个如果熟悉的话,是push的反向操作,因此它是移除列表中的一个元素,并且返回该元素的值,它默认是移除最后一个,当然你也可以指定移除第几个。Push的话,Python使用的是append来代替的。

    7) remove这个也没什么好讲的

    8) reverse这个也是一样,使元素反向存放。

    9) sort这个函数也是大家所熟知的,但是在使用上需要注意: sort排序是在原位置进行排序,即会重新排序目标,比如y=x.sort(),这样y是空值,x则已经排好了。与我们的想法不同,因此,应该这样y=x[:],y.sort(),而且要注意的是,千万不要y=x,因为这样,Python默认的是引用,即y的改变也会影响到x。 如果非要做,可以是y=sorted(x),这样也可以。 Sort的参数也可以提供关于排序上面的方法的扩展,具体的我们会在以后的章节中介绍。偷偷的透露一下,比如像Lambda表达式哦。

    以上就是列表的内容,下面,我们介绍元组,这个和列表几乎相同的东西,那么它又有什么样的特性呢。

    3. 元组

    元组是用小括号括起来的,而不是像列表一样用中括号括起来,比如:(1,2,3)那么,实现一个一元组的样子则是(1,),对,就是长这样,不然(1)这样是什么,谁清楚啊。 还有,如何创建一个元组: 1、 随意写出三个数:1,2,3,这样就是一个元组了。 2、 使用tuple函数,这个函数同list一样,是给出一个序列,返回一个元组。

    好的,以上就是我们这一章要讲的内容,下一章我们会继续介绍序列,第三种序列,字符串。

    刘炫320 认证博客专家 博客专家 内容合伙人 首页内容推荐官 计算机科学与技术专业博士,主要研究方向为人工智能、自然语言处理、篇章分析。曾与微软小冰、微软小娜共同工作。兴趣广泛,包括并不限于人工智能,心理学,认知科学,语言学,数学,天文学等。让我们一起和AI,改进世界!
    转载请注明原文地址: https://ju.6miu.com/read-23878.html

    最新回复(0)