Python3 量化分析从小白到破产笔记
列表的进阶 切片与组合
编码:0009
最前面先放个简易目录,理清思绪好上路。
python基础:
- 编程环境准备
- 学习路线规划
- 基础数据类型:变量、字符串~
- 基础语法与规范:注释、缩进~
- 常用运算符:平方、与或非~
- 程序3种执行结构:顺序、分支、循环
- 高阶数据类型:列表、字典~
- 函数:定义、调用、传参~
- 当前=>高级特性:切片、迭代~
- 文件读写:打开、保存~
- 异常处理:~
- 常用内置函数汇总:~
- 常用内置模块:os、datetime~
- python 包:numpy、pandas~
数据获取:
tushare(直接获取交易数据)
处理和分析数据:
- Numpy(数组、矩阵)
- Pandas(表格、excel)
- Scipy(数理统计)
可视化:
- Matplotlib(画图)
- seaborn(画图)
在前面的内容中,我们说人人都爱列表,老板也动不动就让你列个表。我们讲了如何列出一个表,如何对表中的元素进行:增、删、改等操作。这篇文章的内容,我们将进行更高阶一点的操作。
在python中,我们除了列表,还有5种别的这种内置的序列类型的数据,他们包括「元组」和「字符串」,别的几种我们很少用到,这里就不提出来了。之所以在这里还提及到了字符串和元组,是因为我们这里要讲的对列表的高阶操作,对他们也同样适用。这些操作包括:
- 索引(前面已经讲过)
- 切片
- 组合(加、乘)
- 成员检测(前面也讲过)
- 成员遍历
- 长度和最值
下面,我们开始一个一个的来学习这些具体的实现方法。
1、索引
索引在之前已经讲过了,索引的序号从0开始,并且用「[ ]」括号将序号扩起来,放在对象的后面,表示该列表对象中的具体某一个值。
stock_list[5] 表示stock_list中的第6个元素。
2、切片
切片就像是升级版索引,索引只能取出某一个具体的元素,而切片则可以切出一片元素。因此,和索引需要一个序号不同,切片需要两个序号,一个开始序号和一个结束序号,中间使用冒号隔开,切片就是取出从开始到结束,中间这部分的元素。特别强调,python中,切片时,包含开始的序号,但不包括结束的序号。
当然,如果我们在切片时,是从第一个数开始切,或者是从某个数切到最后,还可以使用简便一点的方法:
从上面我们也发现,python中是可以倒着索引的,且最后一个元素的序号是-1。
3、组合(加、乘)
像列表、元素、元组这种内置的序列,我们除了进行切片,还可以进行各种组合(加、乘)。具体的,如果我们使用加法,则会将两个列表拼在一起;而乘法,则是将列表进行重复。
4、成员检测(前面也讲过)
对于列表、元组、或者字符串,我们可以去判断某一个元素是否在这个里面,或者判断它没在这个里面。成员元算符非常方便,如果没有这个东西,我们就要拿着这个目标对象,去列表列面一个一个的看,去对比,会繁琐很多。成员运算的结果返回为bool类型,要么在,要么不在,如果为真,返回True;如果为假,返回False。成员运算符是一个非常简单的英语单词「in」,或者可以和not搭配,「not in」。
5、成员遍历
在第四部分内容中,我们说,如果没有成员检测运算符,我们就需要去对比每一个元素,看看目标元素是不是在这个列表里面。这个过程就叫做成员遍历。所谓成员遍历,就是把每一个元素都依次取出来一次,至于取出来之后的操作,都是按照需求确定的。在别的语言中,这个过程一般借助循环和索引递增来完成,而python有专门的处理方法:for遍历语句。
需要注意的是,在for遍历中,我们可以在内部对元素进行处理,但是for的外部,列表的值并没有改变。因为,在for遍历里面,我们只是把这个值拿出来了,处理后并不会自动放回新的值,所以不会改变原值。for这个东西,我们后面还会具体学习,怎么让更改保留,到时候再探讨。
6、长度和最值
长度我们之前已经讲过,直接使用函数len()就可以测出列表的长度,也就是元素的个数。如果需要取得列表中的最大值和最小值,也可以使用同样的方法,分别调用max()和min()函数。
最后,我们再介绍两个也比较常用的方法:
- .index() 获取列表中第一个该元素的索引
- .count() 列表中该元素的个数
最后,对于某一个对象,我们可以使用dir()函数查看其所有可以使用的方法:dir(list),输出结果为:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
有了这些方法后,我们还需要知道具体某一个方法的功能和用法,使用 help()函数:help(list.append),输出如下:
我们就先到这里啦,下次再见吧!