【Python基础教程第2版】——第二讲:列表和元组

引言:

什么是数据结构?

数据结果是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。Python中最常用的数据结构是序列。

Python包含6种内建的序列:列表和元组(最常用:列表可以修改、元组则不能)、字符串、Unicode字符串、buffer对象和xrange对象。

一、序列的通用操作:

1、索引(从左到右以0开始不断递增;从右到做-1开始不断递减)

>>> greeting = ‘hello‘
>>> greeting[0]
‘h‘
>>> greeting[-1]
‘o‘

2、分片(开始元素为冒号前的,结束元素为冒号后的元素的前一个)

>>> greeting[0:3](0,1,2)
‘hel‘
>>> greeting[-3:-1](-3,-2)
‘ll‘
>>> greeting[-3:](-3,到最后)
‘llo‘

>>> greeting[:]
‘hello‘

>>> greeting[1:3:2]   #以2为步长,前面的都是默认以1为步长
‘e‘

3、序列相加(只有相同类型的才可以相加)

>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> ‘hello‘+‘world‘
‘helloworld‘
>>> [1,2,3]+‘world‘

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
[1,2,3]+‘world‘
TypeError: can only concatenate list (not "str") to list

4、乘法

>>> ‘python‘*5
‘pythonpythonpythonpythonpython‘
>>> [56]*4
[56, 56, 56, 56]

>>> sequence = [None]*10   #空列表[None]
>>> sequence
[None, None, None, None, None, None, None, None, None, None]

5、成员资格(使用in运算符检查一个值是否在序列中)

>>> ll = ‘8uusdf‘
>>> ‘u‘ in ll
True
>>> ‘we‘in ll
False
>>> ‘uus‘ in ll
True
>>> ‘us‘ in ll
True
>>> ‘ud‘ in ll
False

6、长度、最小值和最大值(len(序列名称)用的很多)

>>> numbers = [89, 56, 100]
>>> len(numbers)
3
>>> max(numbers)
100
>>> min(numbers)
56

二、列表:Python的“苦力”(这里讲列表的有用的专属的方法)

(一)基本操作

1、list方法(list方法将字符串转化成列表形式;join可以将列表通过某个符号连起来,如通过‘‘空字符将字符列表连起来就是一个字符串)

>>> list1 = list(‘hello‘)
>>> list1
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
>>> ‘‘.join(list1)
‘hello‘
>>>

2、元素赋值

>>> x = [1,2,3]
>>> x[1] = 6
>>> x
[1, 6, 3]

3、删除元素

>>> del x[1]
>>> x
[1, 3]

3、分片赋值

>>> name = list(‘i love you‘)
>>> name
[‘i‘, ‘ ‘, ‘l‘, ‘o‘, ‘v‘, ‘e‘, ‘ ‘, ‘y‘, ‘o‘, ‘u‘]
>>> name[2:6] = list(‘hate‘)
>>> name
[‘i‘, ‘ ‘, ‘h‘, ‘a‘, ‘t‘, ‘e‘, ‘ ‘, ‘y‘, ‘o‘, ‘u‘]
>>> ‘‘.join(name)
‘i hate you‘

以下为不替换任何元素情况下插入元素:

>>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4]
>>> numbers
[1, 2, 3, 4, 5]

以下为不替换任何元素情况下删除元素:

>>> numbers
[1, 2, 3, 4, 5]

>>> numbers[1:5] = []
>>> numbers
[1]

(二)列表方法——很重要(注意定义变量或者对象的名称,不要与内建函数或者某些类的方法同名,否则会导致调用失败)

1、append——在列表末尾追加新的对象(会改变原列表)

>>> lst = [1,2,3]
>>> lst.append(4)

>>> lst
[1, 2, 3, 4]

2、count——统计某元素在列表中出现的次数

>>> x = [[1,2],2,3,[1,2],1,1]
>>> x.count(1)
2
>>> x.count([1,2])
2

3、extend——一次性在末尾追加多个值(会改变原列表)

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

若使用+操作,则不会改变原列表的值:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b             #生成新的列表
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3]

4、index——从列表中找出某个值第一个匹配项的索引位置

>>> kk = [‘what‘, ‘is‘, ‘your‘, ‘name‘, ‘?‘]

>>> kk.index(‘is‘)
1

>>> kk2 = [‘what‘, ‘is‘, ‘ll‘, ‘is‘, ‘doudou‘]
>>> kk2.index(‘is‘)        #注:列表中有两个‘is‘,index会从左往右找,找到就直接返回,即找到第一个就停止,如果没有的话,就会返回错误
1

>>> kk2.index(‘wer‘)

Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
kk2.index(‘wer‘)
ValueError: ‘wer‘ is not in list

5、insert——将对象插入到列表中(参数为<插入位置,对象的值>,插入位置从0开始计算,想要在哪里插入,就直接写上该位置的索引值即可)

>>> numbers = [1,2,3,5,6,7]
>>> numbers.insert(3, ‘four‘)

>>> numbers
[1, 2, 3, ‘four‘, 5, 6, 7]

6、pop——移除列表中的一个元素,默认是最后一个

注:pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法

>>> x = [1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)    #默认是最后一个,这里可以指定参数,为index索引值
1
>>> x
[2]

7、remove——移除列表中某个值的第一个匹配项(根据值,而不是index索引值)【与pop相反,没有返回值的原位置修改的方法】

>>> x = [‘to‘, ‘be‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
>>> x.remove(‘be‘)
>>> x
[‘to‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]
>>> x.remove(‘be‘)
>>> x
[‘to‘, ‘or‘, ‘not‘, ‘to‘]
>>> x.remove(‘234‘)

Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
x.remove(‘234‘)
ValueError: list.remove(x): x not in list

8、reverse——反向存放列表中的元素(改变列表而不返回值)

>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

9、sort——排序方法:在原位置对列表进行排序

>>> x = [3,5,2,7,1,10,6]
>>> x.sort()
>>> x
[1, 2, 3, 5, 6, 7, 10]

若需要保留X的值,则可以先把X的副本赋给Y,然后对Y进行排序

>>> x = [3,5,2,7,1,10,6]
>>> y = x[:]      #注,一定是通过这种方式赋值,不能直接y = x
>>> y.sort()
>>> y
[1, 2, 3, 5, 6, 7, 10]
>>> x
[3, 5, 2, 7, 1, 10, 6]

下面是直接y = x的情况:

>>> x = [3,5,2,7,1,10,6]
>>> y = x
>>> y.sort()
>>> y
[1, 2, 3, 5, 6, 7, 10]
>>> x
[1, 2, 3, 5, 6, 7, 10]        #这里的y和x指向的是同一个列表了

也可以通过sorted()函数,代码如下:

>>> x = [3,5,2,7,1,10,6]
>>> y = sorted(x)
>>> y
[1, 2, 3, 5, 6, 7, 10]
>>> x
[3, 5, 2, 7, 1, 10, 6]

10、cmp——比较大小,cmp(x,y)中,x大于y会返回1;x小于y返回0

>>> cmp(42,32)
1

>>> cmp(99,100)
-1
>>> numbers = [5,2,9,7]
>>> numbers.sort(cmp)
>>> numbers
[2, 5, 7, 9]

三、元组

1、元组的定义:

>>> 1,2,3
(1, 2, 3)
>>> 42,
(42,)
>>> ()
()
>>> 3*(40+2)
126
>>> 3*(40+2,)
(42, 42, 42)

2、tuple()函数  ——与列表的list方法类似,可以通过该函数将列表或者字符串转化成元组形式

>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple(‘abc‘)
(‘a‘, ‘b‘, ‘c‘)
>>> tuple((1,2,3))
(1, 2, 3)

3、元组的基本操作——与列表不同,没有列表的一堆方法,元组的基本操作(创建元组和访问元组元素)可参见其他类型的序列

>>> x = 1,2,3
>>> x[1]
2
>>> x[0:2]
(1, 2)

时间: 2024-11-05 22:50:57

【Python基础教程第2版】——第二讲:列表和元组的相关文章

python基础教程(第2版)第二章读后总结;

python第二章 序列是一种数据结构:典型的序列包括:列表,字符串,元组 数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素 可以是数字或者字符,甚至可以是其他数据结构,在python中,最近本的数据结构是序列,序列中的每个元素被 分配一个序号-----即元素的位置,也成为索引,第一个索引是0,第二个则是1,以此类推. 列表和元组的主要区别: 列表可以修改,元组则不能,但他们都统称为序列; 列表的各个元素通过逗号分离,写在方括号中: 元组的各个元素通过逗号分离

Python基础教程笔记——第2章:列表和元组

python shell 里重复上一次的命令:Alt+p 2.3 列表:Python的苦力 (1)list函数 (2)列表赋值,不蹦蹦为一个元素不存在的位置赋值 (3)删除元素,del name[1] (4)分片赋值,name[2:]=list('ar') 列表方法:对象.方法(参数) (1)a.append(6)   在列表末尾添加新的对象 (2)a.count("dh")   统计元素在列表中出现的次数 (3)a.extend(b)   可以在列表的末尾一次性追加多个值 (4)a.

【Python基础教程第2版】——第一讲:基础知识

1.长字符串:(用三引号如'''或者"""来引起来) >>> print """This is a very log string.It continues here.And it's not over yet."Hello world!"""" This is a very log string.It continues here.And it's not over yet.&

《Python基础教程第3版》PDF中英文+代码资料分享学习

<Python基础教程第3版>包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表.元组.字符串.字典以及各种语句:然后循序渐进地介绍了一些相对高级的主题,包括抽象.异常.魔法方法.属性.迭代器:此后探讨了如何将Python与数据库.网络.C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试.打包.发布等知识:最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了10个具有实际意义的P

《Python基础教程 第2版&#183;修订版》 第2章 列表和元组(学习笔记&#183;总)

这章东西有点多,因此,分成了三份来写,总体来说,这章内容较基础,以下是一二三的链接 <Python基础教程 第2版·修订版>第2章 列表和元组(学习笔记·一) <Python基础教程 第2版·修订版>第2章 列表和元组(学习笔记·二) <Python基础教程 第2版·修订版>第2章 列表和原组 (学习笔记·三) 版权声明:本文为博主原创文章,未经博主允许不得转载.

《Python基础教程 第2版 修订版》学习笔记(一)

<Python基础教程 第2版 修订版>学习笔记(一) 第一章:快速改造:基础知识 1.1 安装Python (略) How to Become a Hacker: http://www.catb.org/~esr/faqs/hacker-howto.html 中文版:如何成为一名黑客 http://blog.jobbole.com/64196/ (伯乐在线版,个人认为目前比较完善的版本) 1.2 交互解释器 >>> 1.3 算法是什么 目标:煮一盘午餐肉加鸡蛋的食物 过程:

《python基础教程第三版》高清版PDF免费下载

Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 下载地址:网盘下载 编辑推荐 久负盛名的Python入门经典 中文版累计销量200 000+册 针对Python 3全新升级 本书是经典的Python入门教程,层次鲜明.结构严谨.内容翔实,特别是后面几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程,手把手教授Python编程实践,让读者从项目中领略Python的真正魅力. 本书既适合初学者夯实基础,又能帮

《Python基础教程》学习的第二课0120

今日学习列表与元组 1.序列 >>> a=['RP',22]>>> b=['RY',55]>>> database=[a,b]>>> database[['RP', 22], ['RY', 55]]>>> 2.索引 >>> hello='nihao'>>> hello[0]'n'>>> #也可以这样写>>> 'nihao'[0]'n'>&g

Python基础学习参考(六):列表和元组

一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素之间用逗号隔开,举例如下: a = [12,'hello',15.5,True] 上面就定义了一个列表,列表中的元素可以是任意数据类型,并不仅限于例子中的这些数据类型. 1.访问列表中的元素 最直接的方式就是通过位置索引来访问元素,列表的索引是从0开始的.比如想访问上面列表中的第一个元素,并打印出来: pri