2.多维列表
(1)二位列表:列表的元素可以是列表,列表中包含列表则为多为列表;
·二位列表可以帮我们存储二位、表格的数据;
内存结构图
嵌套循环:
2.多维列表
(1)二位列表:列表的元素可以是列表,列表中包含列表则为多为列表;
·二位列表可以帮我们存储二位、表格的数据;
内存结构图
嵌套循环:
(9)列表排序:
1)修改源列表,不建新列表的排序
2)降序;
3)随机序列
4)建新列表的排序sorted
5)eversed()返回迭代器,用list列表的形式返回,但只能返回一次,以为指针的位置已经发生了改变。
(10)列表相关的其他内置函数汇总
max和min
sum:对于数值型列表求和,对于非数值型列表则会报错
(7)切片操作
标准格式未[起始偏移量:终止偏移量:步长]
(8)列表遍历
(4)列表元素的访问和计数
·访问
1)通过索引直接访问元素
2)index()获得指定元素在列表中首次出现的索引,这里的数字也是数字本身,打印出来的是索引值;
index(value,[start [end] ]) 数字表示从start开始的索引范围
·计数
count()获得指定元素在列表中 出现的次数
(5)列表长度
len()返回列表的长度
(6)成员资格判断
·列表元素删除
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的方式来改变。在整个过程中,我们创建了新的字符串对象,而不是改变了以前的字符串