【7】活用列表:记录每一分钟的K线收盘价
▲ 全年订阅 加入专属交流群(进群方式见文末)
大家好,欢迎来到《量化投资24小时》的第7集,在上一集中我们主要地介绍了在字符串的一些相关使用,在这一集中我们将介绍列表(list)的使用。打开cmd窗口,从这一集开始选择ipython的交互式开发环境来演示。(在窗口中输入ipython后回车,进入交互式终端)
列表是有序的数据集合,有序是指在其中所有保存的东西都是有顺序的;数据集合意味着它相当于容器,我们可以在其中保留一个又一个的数据。
友情提示:为确保视频精度,请尽量在PC端观看本集内容。
Part 1 创建列表 - 01分22秒
step1:demoL=【‘a’,‘b’,‘c’,‘d’,‘e’】
step2:回车,得到demoL的列表
step3:print demoL 回车,则得到数据集合
Part 2 访问数据 - 02分23秒
02分23秒
step1:demoL【0】回车,得到‘a’这个字符串
demoL【4】回车,得到‘e’这个字符串
假如访问的数据已经超出列表的范围demoL【10】,则会触发异常IndexError,显示访问列表的下标已经超出列表长度
03分50秒
step2: len< demoL > 回车就会显示当前列表长度
Part 3 列表和其他静态语言的区别 - 04分05秒
04分16秒
列表里的数据可以是不同类型的
C++中容器里的数据类型必须是唯一的
step1:demoL2=【1,2.3,‘abc’,True,【5,6,7】】
甚至其中有一项数据是另一个列表
step2:回车,print demoL2,得到数据集合
06分01秒
Python里面的列表可以实现嵌套
step1: demoL3=【【1,2,3】,【4,5,6】,【7,8,9】】
step2:回车,print demoL3,得到数据集合
Part 4 在已有列表中加入新元素 - 07分10秒
07分26秒
step1:创建列表l=【1,2,3,4,5】
l . append<6> (这个函数用来将数据插入列表的尾部)
print l 回车可以看到数据集合中多了一个6
08分08秒
step2: l . insert<0(表示插入的位置),0(表示插入的数值)>
print l 回车可以看到0被插入到了列表的首位
08分40秒
step3: 创建新的列表l2=【7,8,9】
l . extend<l2>(这个函数用来将新列表插入原列表尾部)
print l 回车可以看到l2这个列表被插入到其中
Part 5 删除数据 - 09分36秒
09分40秒
step1: l . remove<9>
print l 回车可以看到l列表中9这个数据被删除
10分00秒
step2: l . pop<0>(pop是基于位置的移除)回车可以看到被移除的数据
print l 回车可以看到0位置的数据被删后的列表
Part 6 把某个位置的数据更新 - 11分08秒
更新数据的位置是原来数据位置下标减1
l=【2,3,4,5,6,7,8】
step1: l【1(将3更新,则位置是2-1=1)】=300
step2: print l 回车看到列表中第二个下标位置的数据由3变成300
Part 7 数据的遍历 - 12分09秒
12分18秒
step1:遍历列表中每个数据并将每个数据加一打印出来
for i in l :(for循环)
print i+1 回车看到列表中对应的都是原有数据加一后的结果
13分14秒
step2:l2=【】
for i in l:
l2 . append<i+1> 回车看到l形成,由原列表每个数据加一组成
14分27秒
step3:列表解析
l3=【i+1 for i in l】
(将上步中三个代码混合,可读性增强且简便)
print l3 得到上步相同的结果
Part 7 数据的遍历 - 15分20秒
15分23秒
step1: 时间序列的数据
closePrices =【】
closePrices . append<100>(将每次收到的k线Bar的收盘价添加其中)
print closePrices 回车可看到每次收到的价格都能显示在其中(在Python环境中列表里添加元素越多,所做的查询等操作耗时线性增加)
17分27秒
step2: 列表的排序
sortedClosePrices = closePrices . sort<>
print ClosePrices 可看到数据从小到大排列
可用于收到期权行权价格后的对象列表排序
-end-
加群方式
感谢您订阅本特辑,全年订阅用户加见闻小秘书微信(wscnPREMIUM)后发送用户名与订单截图,即可加入专属微信讨论群深入学习。