python基础第三节

可变字符串

字符串属于不可变对象不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象,可以使用io.StringIO对象或者array模块

import io 
s = "hello"
sio = io.StringIO(s)
sio.write("g")
#可以原地修改字符串

运算符

比较运算符可以连用  a = 4    3

位操作

<< 左移  >>右移

加法操作:数字相加 字符串拼接,列表、元祖合并

乘法操作:数字相乘,字符串复制,列表元祖复制

python不支持自增++  自减--

运算符优先级

表达式复杂用小括号来组织 乘除法优先加减法,位运算和算术运算>比较运算>赋值运算符>逻辑运算符

序列

常用序列 :字符串、列表、元组、字典、集合

a  = [1,2,34,5]

定义一个列表的时候 分配一个连续的内存空间,依次把对象的地址放在列表之中,列表本身也是对象,把列表本身的地址给变量a

列表

列表是内置的可变序列,

增加元素 append  extend insert

列表大小可变,根据需要随时增加或缩小

字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列

列表的创建

基本语法[]创建

list()创建空的列表对象  可以将任何可迭代的数据转化成列表

range()创建整数列表

range([start,]end[,step])

start step 可选

range()返回的是一个range对象,而不是列表,需要用list()将range对象转换成列表对象

推导式生成列表:

a = [x*2 for x in range(5)] #循环创建多个元素 ,创建列表  可通过if过滤元素

列表元素的增加和删除

增加

列表可以自动管理内存,效率较低

append() 原地修改列表对象,列表尾部添加元素,速度最快推荐使用

一般只在列表尾部添加删除元素,一般不在列表中间添加

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

insert()插入元素 ,某个指定的元素插入列表对象的任意位置。涉及大量元素移动,处理速度较慢,类似这种的remove() \pop()、del()

删除

del删除 删除列表指定位置的元素

删除本质是数组元素拷贝

pop()方法 删除并返回指定位置元素,如果未指定是尾部元素

remove() 删除首次出现的指定元素,弱不存在该元素则抛出异常

列表元素访问和计数

通过索引直接访问元素

索引超出范围直接抛出异常

index()获得指定元素在列表中首次出现的索引,第二个参数指定范围

count()获得制定元素在列表中出现的次数

len()返回列表长度

成员资格判断  用in   用count()计数是否为0

切片操作和字符串切片操作基本一样

[:] 提取所有元素

列表排序

修改原列表,不创建新的列表排序

a =[20,30,40,50]

a.sort() 默认升序排列

a.sort(reverse=True) 降序排列

random.shuffle 打乱顺序

创建新的列表排序

内置函数sorted() 返回新列表不对原列表进行修改

a =sorted(a)

reversed() 返回迭代器  支持逆序排列,不对原列表做修改,返回一个逆序排列的迭代器对象

迭代器只能用一次 时间换空间 包含一个指针,迭代

多维列表

二维列表存储二维度、表格的数据

元组

元组属于不可变序列,不能修改元组的元素,元组没有增加、修改、删除元素的相关方法

元组支持如下操作:(1)索引访问 (2)切片操作 (3)连接操作 (4)成员关系操作 (5)

比较关系操作 (6)计数 len() max() min() sum()等

元组创建:通过小括号来创建 小括号可以省略,只有一个数字,需要这样写:b =(20,) 加一个逗号,不然会识别为一个int类型整数

 tuple()创建元组  

b = tuple()

b = tuple(range(4))

tuple()可以接受列表、字符串、其他序列类型、迭代器等生成元组

list()可以接受元组、字符串、其他序列类型、迭代器等生成列表

元组的访问和列表一样,只不过返回的仍然是元组

元组排序只能使用内置函数sorted(tupleObj) 并生成新的列表

zip()

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

生成器推导式创建元组:

生成器推导式用小括号,生成的不是列表也不是元组而是一个生成器对象

生成器对象有__next__()方法进行遍历,或者直接作为迭代器对象来使用,不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。

元组的访问和处理速度比列表快

与整数和字符串一样,元组可以作为字典的键,列表不能作为字典的键使用。

你可能感兴趣的:(python基础,python,pycharm)