第三章python序列

1429-李同学

发表文章数:6

首页 » Python » 正文

可变字符串
在Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用io.StringI()

第3章序列

序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。
我们可以看出序列中存储的是整数对象的地址,而不是整数对象的值。python中常用的序列结构有:
字符串、列表、元组、字典、集合

列表简介
列表:用于存储任意数目、任意类型的数据集合。
列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义的标准语法格式a = [10,20,30,40]
其中,10,20,30,40 这些称为:列表a 的元素。
列表中的元素可以各不相同,可以是任意类型。比如:a = [10,20,‘abc’,True]

列表的创建
1基本语法[]创建
2list()创建
3range()创建整数列表
range([start,] end [,step])
python3 中range()返回的是一个range 对象,而不是列表。我们需要通过list()方法将其转换成列表对象

list(range(3,15,2))
[3, 5, 7, 9, 11, 13]

推导式生成列表(简介一下,重点在for 循环后讲)

列表元素的增加和删除
append()方法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。

+运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象

extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。

insert()插入元素
使用insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。

乘法扩展
使用乘法扩展列表,生成一个新列表,新列表元素时原列表元素的多次重复。

列表元素的删除
del 删除
删除列表指定位置的元素。
pop()方法
pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常。

列表元素访问和计数
通过索引直接访问元素
index()获得指定元素在列表中首次出现的索引
count()获得指定元素在列表中出现的次数
len()返回列表长度

成员资格判断
更加简洁的in 关键字来判断

切片操作
标准格式为:
[起始偏移量start:终止偏移量end[:步长step]]
注:当步长省略时顺便可以省略第二个冒号

复制列表所有的元素到新列表对象

列表排序
sort默认是升序排列
sort(reverse=True) #降序排列

import random
random.shuffle(a) #打乱顺序

建新列表的排序
内置函数sorted()进行排序,这个方法返回新列表,不对原列表做修改

reversed()返回迭代器
内置函数reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。

a = [20,10,30,40]
c = reversed(a)
c
<list_reverseiterator object at 0x0000000002BCCEB8>

list©
[40, 30, 10, 20]

list©
[]
我们打印输出c 发现提示是:list_reverseiterator。也就是一个迭代对象。同时,我们使用
list©进行输出,发现只能使用一次。第一次输出了元素,第二次为空。那是因为迭代对象
在第一次时已经遍历结束了,第二次不能再使用。

多维列表

元组tuple

列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关

元组的创建

  1. 通过()创建元组。小括号可以省略。列表通过[]创建
  2. 通过 tuple()创建元组,列表是list.

总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。

zip
zip(列表 1,列表 2,…)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。经常使用的方法

a = [10,20,30]
b = [40,50,60]
c = [70,80,90]
d = zip(a,b,c)
list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]

生成器推导式创建元组

元组总结

  1. 元组的核心特点是:不可变序列。
  2. 元组的访问和处理速度比列表快。
  3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

未经允许不得转载:作者:1429-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《第三章python序列》 发布于2020-11-23

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录