第4 章序列的应用

必背必记

1、切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操
作可以生成一个新的序列。实现切片操作的语法格式如下:

sname[start : end : step]

参数说明:
  sname:表示序列的名称。
  start:表示切片的开始位置(包括该位置),如果不指定,则默认为0。
  end:表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
  step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可
以省略。

例:

>>> m = list(range(100))  #通过range函数创建一个0-99的数列,组成一个list赋值给m
>>> m
[0, 1, 2, 3, 4, 5, 6, ……,99]

>>> m[:10]  #取前十个数
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


>>> m[-10:]  #取后十个数 [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

>>> m[10:20]  #取前11-20个数 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

>>> m[:10:2]  #前十个数中,每2个数取一个 [0, 2, 4, 6, 8]

>>> m[5:15:3]  #第6-15个数中,每3个数取一个 [5, 8, 11, 14]

>>> m[::10]  #所有的数中,每10个数取一个 [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

>>> m[:]  #什么都不写,可以原样复制一个list [0, 1, 2, 3, 4, 5, 6, 7,……,99]

 

2、检查某个元素是否是序列的成员
在Python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否
包含在某个序列中。语法格式如下:

value in sequence

其中,value 表示要检查的元素,sequence 表示指定的序列。

例:

>>>3 in m
True
100 in m
False

 

3、序列相关内置函数

函数 作用
list()

将序列转换为列表

str() 将序列转换为字符串
sum() 计算元素和
reversed() 反向序列中的元素
enumerate() 将序列组合为一个索引序列,多用在for 循环中
sorted() 对元素进行排序

4、列表的创建和删除
(1)同其他类型的Python 变量一样,创建列表时,也可以使用赋值运算符“=”直接
将一个列表赋值给变量,语法格式如下:

listname = [element 1,element 2,element 3,…,element n]

(2)创建空列表
在Python 中,也可以创建空列表,例如,要创建一个名称为emptylist 的空列表,可以
使用下面的代码:

emptylist = []

(3)创建数值列表
在Python 中,可以使用list() 函数直接将range()函数循环出来的结果转换为列表。
list()函数的基本语法如下:

list(data)

其中,data 表示可以转换为列表的数据,其类型可以是range 对象、字符串、元组或者
其他可迭代类型的数据。

(4)删除列表
对于已经创建的列表,不再使用时,可以使用del 语句将其删除。语法格式如下:

Del listname

其中,listname 为要删除列表的名称。

5、遍历列表
(1)直接使用for 循环实现
直接使用for 循环遍历列表,只能输出元素的值,语法格式如下:

for item in listname:
# 输出item

其中,item 用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可;listname
为列表名称。
(2)使用for 循环和enumerate()函数实现
使用for 循环和enumerate()函数可以实现同时输出索引值和元素内容,语法格式如下:

for index,item in enumerate(listname):
# 输出index 和item

参数说明:
index:用于保存元素的索引。
item:用于保存获取到的元素值,要输出元素内容时,直接输出该变量即可。
listname 为列表名称

6、添加列表元素语法格式如下:

listname.append(obj)

上面介绍的是向列表中添加一个元素,如果想要将一个列表中的全部元素添加到另一个
列表中,可以使用列表对象的extend()方法实现。extend()方法的语法如下:

listname.extend(seq)

其中,listname 为要添加元素的列表名称,obj 为要添加到列表末尾的对象。seq 为要添
加的列表。语句执行后,seq 的内容将追加到listname 的后面。

7、对列表进行统计和计算
(1)获取指定元素出现的次数
使用列表对象的count()方法可以获取指定元素在列表中的出现次数。基本语法格式如
下:

listname.count(obj)

(2)获取指定元素首次出现的下标
使用列表对象的index()方法可以获取指定元素在列表中首次出现的位置(即索引)。

基本语法格式如下:

listname.index(obj)

参数说明:
  listname:表示列表的名称。
  obj:表示要判断是否存在的对象,这里只能进行精确匹配,即不能是元素值的一部分。
(3)统计数值列表的元素和
  在Python 中,提供了sum()函数用于统计数值列表中各元素的和。语法格式如下:

sum(iterable[,start])

参数说明:
  iterable:表示要统计的列表。
  start:表示统计结果是从哪个数开始(即将统计结果加上start 所指定的数),是可选参
  数,如果没有指定,默认值为0。

8、对列表进行排序

  (1)使用列表对象的sort()方法
  列表对象提供了sort()方法用于对原列表中的元素进行排序。排序后原列表中的元素顺
序将发生改变。列表对象的sort()方法的语法格式如下:

listname.sort(key=None,reverse=False)

参数说明:
  listname:表示要进行排序的列表。
  key:表示指定从每个元素中提取一个用于比较的键(例如,设置“key=str.lower”表
示在排序时不区分字母大小写)。
  reverse:可选参数,如果将其值指定为True,则表示降序排列;如果为False,则表示
升序排列,默认为升序排列。
(2)使用内置的sorted()函数实现
  在Python 中,提供了一个内置的sorted()函数,用于对列表进行排序。使用该函数进行
排序后,原列表的元素顺序不变。storted()函数的语法格式如下:

sorted(iterable,key=None,reverse=False)

参数说明:
  iterable:表示要进行排序的列表名称。
  key:表示指定从每个元素中提取一个用于比较的键(例如,设置“key=str.lower”表示
在排序时不区分字母大小写)。
  reverse:可选参数,如果将其值指定为True,则表示降序排列;如果为False,则表示
升序排列,默认为升序排列。

9、列表推导式
(1)生成指定范围的数值列表,语法格式如下:

list = [Expression for var in range]

参数说明:
  list:表示生成的列表名称。
  Expression:表达式,用于计算新列表的元素。
  var:循环变量。

  range:采用range()函数生成的range 对象。
(2)根据列表生成指定需求的列表,语法格式如下:

newlist = [Expression for var in list if condition]

参数说明:
  newlist:表示新生成的列表名称。
  Expression:表达式,用于计算新列表的元素。
  var:变量,值为后面列表的每个元素值。
  list:用于生成新列表的原列表。
  condition:条件表达式,用于指定筛选条件。

10、元组的创建和删除

(1)使用赋值运算符直接创建元组
同其他类型的Python 变量一样,创建元组时,也可以使用赋值运算符“=”直接将一个
元组赋值给变量。语法格式如下:

tuplename = (element 1,element 2,element 3,…,element n)

  其中,tuplename 表示元组的名称,可以是任何符合Python 命名规则的标识符;elemnet
  1、elemnet 2、elemnet 3、elemnet n 表示元组中的元素,个数没有限制。
(2)创建数值元组
  在Python 中,可以使用tuple()函数直接将range()函数循环出来的结果转换为数值元组。
tuple()函数的基本语法如下:

tuple(data)

其中,data 表示可以转换为元组的数据,其类型可以是range 对象、字符串、元组或者
其他可迭代类型的数据。

(3)删除元组
对于已经创建的元组,不再使用时,可以使用del 语句将其删除。语法格式如下:

del tuplename

其中,tuplename 为要删除元组的名称。

11、集合的创建
(1)直接使用“{}”创建集合

setname = {element 1,element 2,element 3,…,element n}

参数说明:
  setname:表示集合的名称,可以是任何符合Python 命名规则的标识符。
  elemnet 1,elemnet 2,elemnet 3,…,elemnet n:表示集合中的元素,个数没有限制
(2)使用set()函数创建

在Python 中,可以使用set()函数将列表、元组等其他可迭代对象转换为集合。set()函
数的语法格式如下:

setname = set(iteration)

参数说明:
  setname:表示集合名称。
  iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range 对象等,也可以
是字符串。如果是字符串,返回的集合将是包含全部不重复字符的集合。

12、集合的添加和删除
(1)向集合中添加元素
向集合中添加元素可以使用add()方法实现,语法格式如下:

setname.add(element)

参数说明:
  setname:表示要添加元素的集合。
  element:表示要添加的元素内容,只能使用字符串、数字及布尔类型的True 或者False
等,
不能使用列表、元组等可迭代对象。

(2)从集合中删除元素
  在Python 中,可以使用del 命令删除整个集合,也可以使用集合的pop()方法或者remove()
方法删除一个元素,或者使用集合对象的clear()方法清空集合,即删除集合中的全部元素,
使其变为空集合。

mr.remove('零基础学Python') # 移除指定元素
print('使用remove()方法移除指定元素后:',mr)
mr.pop() # 删除一个元素
print('使用pop()方法移除一个元素后:',mr)
mr.clear() # 清空集合
print('使用clear()方法清空集合后:',mr)

英语词汇

背记有法,让英语不再成为编程学习的拦路虎!

sorted
含义:分类,整理;挑选;[计算机]
(根据指令的模式)把…分类;把…
归类;排序的
热度:

reversed
词义:推翻;(使)反转;(使)颠倒;
(使)翻转;颠倒的
热度:

posted @ 2018-09-17 13:47  何守辉  阅读(376)  评论(0编辑  收藏  举报