1 可变字符串
Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。可以使用io.StringIO对象或array模块。import io,s=‘x’,sio=io.StringIO(s)
2. 序列
序列是一种数据存储方式,用来存储一系列的数据。序列中存储的是地址,不是值。在内存中,序列就是一块用来存放多个值的连续的内存空间。
常用的序列结构有:字符串、列表、元组、字典、集合
2.1 列表
列表:用于存储任意数目、任意类型的数据集合。a=[10,20,'abc',True]。
Python的列表大小可变,根据需要随时增加或缩小
2.1.1 列表的创建
基本语法[]创建、list()创建、range()创建整数列表(range([start,]end[,step]))、
推导式生成列表a=[x*2forxinrange(100)ifx%9==0]。
2.1.2 列表元素的增加和删除
append()(尾部)、+运算符操作(不是尾部,大量复制)、extend()(尾部,不创建新的对象)、乘法扩展(字符串、元祖也适用)、insert()、remove()、pop()、del()。最后4个在非尾部操作时会发生大量移动。
2.1.3 index()获得指定元素在列表中首次出现的索引、count()获得指定元素在列表中出现的次数、len()返回列表长度、成员资格判断(用count()>0 或者等于0)或者in、切片操作、
2.1.4 列表的遍历:for obj in listObj:
print(obj)
2.1.5 复制列表所有的元素到新列表对象:list2=[]+list1
2.1.6 列表排序:修改原列表,不建新列表的排序 sort() sort(reverse=true);建新列表的排序
2.1.7 reversed()返回迭代器
内置函数reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。
2.1.8 列表相关的其他内置函数汇总 max min sum
2.2 多维度列表
2.3 元组tuple
列表属于可变序列。元组属于不可变序列.
2.3.1 元组的创建
通过()创建元组。小括号可以省略。a=(10,20,30)或者a=10,20,30
2.3.2 通过tuple()创建元组 :tuple(可迭代的对象)
总结:tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。
2.3.3 元组的元素访问和计数
*元组的元素不能修改
*元组的元素访问和列表一样,只不过返回的仍然是元组对象
*列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象。
*zip(列表1,列表2,...)将多个列表对应位置的元素组合成为元组,并返回这个zip对象。
2.3.4 生成器推导式创建元组
>>>s=(x*2forxinrange(5))
>>>s
<generatorobject<genexpr>at0x0000000002BDEB48
>>>>tuple(s)
(0,2,4,6,8)
元组总结1.元组的核心特点是:不可变序列。2.元组的访问和处理速度比列表快。3.与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。