·列表元素删除
1)del删除:本质上是复制粘贴
2)pop()方法:删除并返回指定位置元素,如果未指定位置则默认操作列表的最后一个元素
3)remove()方法:删除首次出现的指定元素,若不存在该元素则抛出异常。注:这里的数字不是索引,而是数字本身;del和pop后面都是都是数字
·列表元素删除
1)del删除:本质上是复制粘贴
2)pop()方法:删除并返回指定位置元素,如果未指定位置则默认操作列表的最后一个元素
3)remove()方法:删除首次出现的指定元素,若不存在该元素则抛出异常。注:这里的数字不是索引,而是数字本身;del和pop后面都是都是数字
(3)列表元素的增加和删除
·元素增加
增加和删除都改变列表内存,在这个过程中会涉及 大量的拷贝(复制、粘贴)工作,所以我们一般都在列表末尾进行改动——提高性能
1)append()方法,速度最快,这是最推荐的方法;
2)+运算符操作:创建了新的列表对象,会涉及大量的复制操作,当操作大量元素时,不建议使用
3)extend()将目标列表元素添加到本列表尾部,属于原地操作,不创建新的列表对象。整合两个列表时,推荐这种方法
4)insert()插入元素,将指定的元素插入到列表对象的任意位置,这样会让插入位置之后的元素产生移动,会影响操作速度
5)乘法扩展
(2)列表的创建:
1)基本语法[]创建;
2)list()创建,跟空列表创建时一个道理
list()可以将任何可迭代的数据转化为列表,尤其是字符串
3)通过range()创建整数列表
range()的基本语法格式为:range([start] end [step])
start参数:可选,表示期数数字,默认为0
end参数:必选,表示结尾数字;
step参数:可选,表示步长,默认为1
4)推导式
序列:
序列是一种数据存储的方式,序列结构有:字符串、列表、字典和集合
python中一切皆对象
序列就是一块用来存储多个值的连续的内存空间
对于列表[10,20,30,40]来说,a = [10,20,30,40]在内存中实际按照如下方式存储。通过变量的索引找到地址,再通过地址找到相关对象,然后读出对象的value值。
1.列表:用于储存任意数目、任意类型的数据集合;
(1)列表中常用的方法:
注:·puthon中列表的大小可变,根据需要随时可以增加或缩小;·字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列
super()获得父类的代码/定义
super().父类函数()
class C(B,A)
调用B,A同名方法,优先class B
C->B->A->object
class A:
pss
class B:
pass
class C(B,A):
有返回值的不会修改原值。
t1.reshape(n, ) # shape成一维
t1.reshape(n, 1)or(1,n) # 都是二维
n = t5.shape[0]*t5.shape[1]
or
t5.flatten()
broadcast 在矩阵中必须有一个纬度相同
基本运算符总结
1.比较运算符可以连用,并且含义跟我们日常使用完全一致
2.位操作
按位与:两个同时为1时,为1;其他都为0
按位或:有一个1则为1
异或:相异则为1
3.移位:
4.加法操作:
列表相加可以起到拼接的作用
5.乘法操作
*表复制三次
复合赋值运算符
运算符的优先级问题:
复杂表达式一定要用小括号组织
1.乘除优先加减;
2.位运算和算数运算>比较运算符>赋值运算符
标识符
字符串的格式化:
format()基本用法
填充和对齐:
数字的格式化:
浮点数用f,整数用d
常用的格式如下:
字符串常用方法汇总:
去除首尾信息:strip()去除字符串首尾指定的信息,通过lstrip()去除字符串左边指定的信息,通过rstrip()去除字符串右边指定的信息
大小写转换:
格式排版:
center()居中;ljust()左对齐;rjust()右对齐
其他方法:
字符串驻留机制和字符串比较:
字符串驻留:对于符合标识符规则的字符串(仅包括下划线( _ )、字母和数字时,会启用字符串驻留机制;但是在pycharm里面,只要字符串长得一样,就都符合驻留机制
字符串比较和同一性:
==是对字符串进行比较,字符串包括的字符是否相同;
但is 或 not is 判断的时两个对象是否是同一个对象
成员操作符:
in、not in是关键词,判断某个字符是否在字符串中
1.split()分割和join()
split()可以基于指定分隔符字符串分割成多个字字符串
join()将列表中的字符串连接在一起
字符串可以通过+进行拼接,但是每+一次,就会形成一个新的对象,但是列表对象是可变的,生成一个列表直接用join()则只产生一个对象
通过测试来证明,通过列表join时间更快,性能更高
1.字符串切片slice操作:
在切片操作中,当初试偏移量和终止偏移量不在[0, len(str)-1]的范围内,也不会报错,会自动默认为取len(str)-1范围内的数;
1.str()实现数字转型字符串:
2.使用[ ]提取字符:字符串的本质就是字符序列
正向搜索:最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推,知道len(str)-1为止;
反向搜索:最右侧第一个字符,偏移量是-1.第二个偏移量是-2,以此类推,直到-len(str)为止;
3.replace()实现字符串替换:
a = "abcdefghijklmn"
注:字符串是不可改变的,我们无法通过直接令a[0] = "gao"来改变字符串中第一个位置的内容,但是可以通过replace的方式来改变。在整个过程中,我们创建了新的字符串对象,而不是改变了以前的字符串
转义字符
转义字符的使用:
字符串的拼接:
1.使用加号——'aa' + 'bb';
(1)+两边都是字符串,则是字符串的拼接;
(2)+两边都是数字,则是加法运算;
(3)+两边的类型不同,则会出现异常
2.可以讲多个字符串直接放在一起拼接
字符串的复制:直接用*实现复制
不换行打印:在调用print时,会自动打印一个换行符,如果我们不想换行,则可以通过添加end = “任意字符串”
从控制台读取字符串:
可以通过input() 从控制台读取键盘输入的内容
字符串:
1.字符串基本特点:
(1)程序员打交道最多的是“字符串”,而不是数字,编程中的逻辑思维重要性远远超过数学能力;
(2)字符串的本质是:字符序列;python的字符串是不可变的,我们无法对原字符串做任何修改;
2.字符串的编码:
python3直接支持Unicode编码,Unicode16位可以表示世界上任何书面语言的字符
3.引号创建字符串:通过单引号或双引号创建;字符串里本身有单引号的,外面用双引号,字符串本身有双引号的,外面用单引号;连续三个单引号或三个双引号,可以帮助我们创建多行字符串
4.空字符串:python里面允许空字符串的存在,
同一运算符:
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is 与==的区别:
is判断的是两个变量引用对象是否为同一个,即比较对象的地址;
==用于判断引用对象的阿值是否相等
整数缓存的问题:
python会将[-5,256]范围内的整数缓存起来,则在这个范围内数,a = 5 ,b = 5. a is b 为真,默认这两个数的地址相同。而在pycharm里面的范围是[-5,任意正整数]
布尔值:
True =1
False = 0
比较运算符:
1.等于 ==
2.不等于!=
3.大于 >
4.小于 <
5.大于等于 >=
6.小于等于 <=
逻辑运算符:
or: x or y,x为ture,则不计算y,发生短路
and: x and y,x为真,则返回y的值;若x为false,不计算y,直接返回x的值
not: not x,取非