文:蓝兔子读难NOTES
图:配图 来源于网络
Python3 量化分析从小白到破产笔记
列表的基础 方法与函数的区别
编码:0008
最前面先放个简易目录,理清思绪好上路。
python基础:
编程环境准备
当前=>高阶数据类型:列表、字典~
函数:定义、调用、传参~
高级特性:切片、迭代~
文件读写:打开、保存~
异常处理:~
常用内置函数汇总:~
常用内置模块:os、datetime~
python 包:numpy、pandas~
数据获取:
tushare(直接获取交易数据)
处理和分析数据:
Numpy(数组、矩阵)
Pandas(表格、excel)
Scipy(数理统计)
可视化:
Matplotlib(画图)
seaborn(画图)
计算机的程序在执行时,就是在按照一定的方法对数据进行处理,我们把数据被处理的方式叫做算法,而计算机存储、组织数据的方式叫做数据结构。所以,一个程序实际上是由最基本的两个部分构成的:算法和数据结构。
在前面,我们已经学习了python中最基本的数据类型,比如整形、浮点型、字符串等。但是,在实际问题中,我们很难通过单个的元素就能完成既定的目标。大多数需要处理的数据,都是由多个最基本的数据类型构成的。根据他们构成的不同数据类型,python中有以下几种最基础的数据结构:
列表 list
元祖 tuple
字典 dict
集合 set
其中列表是最为常见的,因为实际生活中,我们也总是喜欢列表:把疫情的捐款名单列个表吧、把员工的工资列个表吧、把我们的学习计划列个表吧、把A股的上市公司列个表吧~~
⬆️财务数据
所以,我们今天就先来学学列表。
不过在学习列表之前,我们还要先了解一个东西,叫做方法(method)。我有一种方法,你也有一种方法,方法就是做某一件事情的办法。做某一件事的办法,我们也可以叫做函数(function)。但是方法和函数还是有所区别的。我们之前说过,python就是一个大工具箱,里面有各种各样的工具,我们编程就是在拿这些工具造车。
本质上,每一个工具都是一个对象(object),每个对象都对应有自己的方法。举个例子,我们要造一辆车,我们首先选了个轮子这么一个对象,假如叫做wheel。为了让我们的车更炫酷,我们想改变车轮子的颜色,我们就需要一种办法来让轮胎变色。
此时,有两种办法:
一种是在这个原有轮胎的基础上,改变轮胎内部的材料,使轮胎变色,我们叫做方法,具体的过程是:拿到这个轮胎,改变内部的材料,在内部的操作用「.」,用程序语言表达就是,wheel.change_color(blue)。
另一种办法是,把这个轮胎拿到别的地方去,直接重新喷涂一遍,我们叫做函数,具体过程是:把这个轮胎给专门喷涂的一个函数,传递轮胎给别的函数用「()」,用程序语言表示就是,change_color(wheel,blue)。
需要注意的是,方法,就是「.」这种方式,是在轮胎内部的改变,我们可以用这种方式改变轮胎的颜色,但是不能通过调轮胎的材料去改变车的颜色,如果要改变车的颜色,需要在车里面调材料,也就是car.change_color(blue)。
但是,函数这种方式则不一样,它是外部的,意味着不管给函数啥,他都能重新喷涂颜色,改变车的颜色,可以用change_color(car,blue)。
所有,要使用方法,就得有一个对象,并且这个对象里面自有这个方法才行!
下面,我们开始学习列表,我们会同时学习一些列表这个对象自带的一些方法。python中,一切皆对象,一个列表也是一个对象,可以把列表比作是上面的轮胎,列表自己带了一些经常用到的方法。
1、什么是列表
列表就是一个列出的表,它里面有多个元素,其中的元素可以是数字、字符串或者浮点数等,甚至可以是一个列表。实际上,你几乎可以把任何一个东西加入列表。列表里面的元素之间是没有关系的,但是是有顺序的,他们彼此之间用逗号隔开,而整个列表则使用[]中括号扩起来。
2、访问列表的元素
由于列表里面的元素是有顺序的,所以当我们要访问某一个元素时,我们只要知道它的顺序号就行了,我们把这个顺序和叫做索引(index)。需要注意的是,列表中元素的顺序号(索引)是从0开始的,也就是说,第一个元素的索引是0,而不是1。当我们需要访问第n个元素时,索引号其实是n-1。访问列表的元素具体方式为:
列表名[索引]
实际上,字符串也可以用这种方式索引其中的元素。
3、列表元素的增加(方法)
假如你创建了一个列表,叫做stock_list,里面按照上市先后顺序存放着中国的所有上市公司股票代码。显然该列表不是固定不变的,有些公司会退市,有些新公司会上市,所以你里面的元素也需要增加和删除。当然,如果你发现某个公司的股票代码一开始登记错误,也可以进行修改。
利用索引进行增、删、改
stock_list[n] = "600001" #修改某个元素的值
stock_list.append("600123") #在末尾添加一个元素
stock_list.insert(n,"600234") #在索引n处插队,后面依次右移
stock_list.pop() #末位删除一个值,并返回该值
stock_list.pop(n) #删除指定索引的值,并返回该值
直接根据值来增、删、改
stock_list.remove("600001") #从列表中移除元素,并返回其值
remove会从第一个元素开始找目标,找到就删除,后面有没有他不管
4、对列表进行排序(方法)
你现在的股票列表stock_list是按照上市时间先后排序的, 但是你现在想按照股票里面的元素进行排序
stock_list.sort() #排序,改变原列表,默认升序
stock_list.sort(reverse=True) #同上,但是改为降序
5、想知道列表有多长,里面一共多少个股票?(函数)
len(stock_list)
6、你可能会遇到的错误
超出了列表的范围;
错把索引从1开始计算。
好啦,本节的内容就到这了,最后总结一下:
stock_list[n] = "600001" #修改某个元素的值
stock_list.append("600123") #在末尾添加一个元素
stock_list.insert(n,"600234") #在索引n处插队,后面依次右移
stock_list.pop() #末位删除一个值,并返回该值
stock_list.pop(n) #删除指定索引的值,并返回该值
stock_list.remove("600001") #从列表中移除元素,并返回其值
stock_list.sort() #排序,改变原列表,默认升序
tock_list.sort(reverse=True) #同上,但是改为降序
len(stock_list) #想知道列表有多长,里面一共多少个元素
相关文章
网友评论