可变字符串
其中seek(7)的意思是将指针指向字符串中第八个字符write(“g”)的意思是将指向的第八个字符改写成字母g
位操作
Python不支持自增和自减
序列**(相当重要)**
序列是一种数据存储方式,用来存储一系列的数据,在内存中,序列就是一块用来存放多个值的连续的内存空间。 注意:序列存储的不是对象的值而是对象的地址。常用的序列结构有:字符串,列表,元组,字典,集合
例如:
定义一个列表a=[10,20,30,40]
则此时列表中只存储的是这四个对象的地址,而变量a的地址则是存储空间中第一个对象的地址。
a[0]就是第一个对象,等等。。。
列表:用于存储任意数目,任意类型的数据集合
列表中的元素可以各不相同,可以是任意类型
列表常用方法
python的列表大小可变,根据需要随时增加或减小
字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列,我们前面学习的很多字符串的方法,在列表中也有类似的方法,几乎一摸一样。
列表的创建
a=[10,20,‘cuikefu’] #创建一个列表对象
a=[] #创建一个空的列表对象
list()创建
使用list()可以将任何可迭代的数据转化成列表
range()创造整数列表
注意,python中range函数返回的是一个range对象,而不是列表,我们需要通过list()方法将其转换成列表对象。
列表元素的增加和删除
当列表增加和删除元素时,列表对自动进行内存管理,大大减少了程序员的负担,但这个特点涉及列表的大量移动效率比较低 ,除非必要,我们一般在列表的尾部增加或者删除元素,这样会大大增加列表的操作效率。
+运算符操作
extend()方法
insert()插入元素
乘法扩展
列表元素的删除
del删除
本质上是后一个元素覆盖前一个元素,而非真正意义上的删除。插入元素也是基本如此。
pop()方法
删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。注意是“删除且返回”
remove方法
删除首次出现的指定元素,若不存在该元素则显示抛出异常。
列表元素的访问和计数
1.通过索引直接访问元素
可以通过索引直接访问元素,索引的区间在【0,列表长度-1】这个范围内,超过这个范围则会显示异常。
index()获得指定元素在列表中首次出现的索引(位置)。
count()获得指定元素在列表中出现的次数
len()返回列表长度
成员资格判断
判断列表中是否存在指定的元素,可以使用count()方法,返回0则表示不存在,返回大于0则表示存在,但是,一般我们会使用更简洁的in关键字来判断,直接返回True或False。
切片操作
slice操作
注意包头不包尾
列表的遍历
列表排序
直接修改原列表,或者重新生成一个新列表。
例如:
此例是直接修改原列表,所以地址没有变,还是原来的列表。
建立新列表的排序
通过内置函数sorted进行排序,此方法返回新的列表,不对原列表进行修改。
例如
reversed()返回迭代器
补充:sum:对数值型列表的所有元素进行求和操作,对非数值列表运算则会报错。
多维列表
二位列表(应用最多)
一维列表可以帮我们存储一维,线性的数据
例如:[10,20,30,40]
二维列表可以帮助我们存储二维,表格的数据。通俗来讲就是列表中的元素为列表。
元组tuple
列表属于可变序列,可以任意改变列表的元素。元组属于不可变序列,不可以随意修改元组中的元素。因此,元组没有修改增加元素,修改元素,删除元素的相关方法。
元组支持以下操作
索引访问 切片操作,连接操作,成员关系操作,比较运算操作,计数
元组的创建
1 通过()来创建元组,()可以省略。
注意:如果元组中只有一个元素,则必须在后面加上逗号。
2 通过tuple()创建元组
tuple可以接收列表,字符串,其他序列类型,迭代器等生成元组。
元组的元素访问和计数
索引
切片:
排序
zip
将多个列表对应位置的元素组合成为元组,并返回这个zip对象
生成器推导式创建元组
元组总结
核心特点:不可变序列
元组的访问和处理速度比列表要快
整数和字符串一样,元组可以作为字典的建,列表则永远不能作为字典的键使用。