FASTAI2列表扩展类L#6:常用list内置函数·下
(摘自《TOP极宽智能量化系列课件》)
案例#6,遍历循环操作
Python语言的遍历循环,主要由关键词for、in和enumerate枚举函数实现。
本节案例,介绍列表扩展类L,遍历循环方面的操作。
案例文件名:fa2lsub006.py,我们先看看案例,分组进行解说。
大家先看看第1组程序代码:
print('\n----- #1')
a=L('btc',3,['eth',0],3,['ltc',2],'xrp')
print('a:',a)
第L对象变量a,用于后续操作,对应的输出信息是:
----- #1
a: (#8) ['btc',3,'eth',0,3,'ltc',2,'xrp']
由第1组代码可以看出,L对象的循环、遍历操作,对象当中的item项目数据:
l 可以是不同类型的数据类型,混合操作。
l 相关数据可以重复。
第2组程序代码:
print('\n----- #2')
b='eth' in a
print('b:',b)
b2=3 in a
print('b2:',b2)
对应的输出信息是:
----- #2
b: False
b2: True
第2组程序代码,使用关键词in,用于验证数据是否在L对象当中,其中:
b='eth'in a
虽然L对象当中由“eth”数据,但是,不是作为独立item项目保存的,而是其中一个list列表数据项目其中的一部分:
['eth',0]
所以返回的检查数据是False。
第3组程序代码:
print('\n----- #3')
for obj in a:
print(obj)
使用for循环,遍历L对象当中的数据,对应的输出信息是:
----- #3
btc
3
['eth', 0]
3
['ltc', 2]
xrp
注意输出数据当中的以下两行:
['eth', 0]
…
['ltc', 2]
表示L对象当中的item项目数据,可以是复合数据。
第4组程序代码:
print('\n----- #4')
for idx,obj in enumerate(a):
print(idx,obj)
使用for循环和enumerate枚举函数,遍历L对象当中的idx下标和数据,对应的输出信息是:
----- #4
0 btc
1 3
2 ['eth', 0]
3 3
4 ['ltc', 2]
5 xrp
输出信息当中前面的数字是idx下标,后面的是对应的item项目数据。
注意输出数据当中的以下两行:
2 ['eth', 0]
…
4 ['ltc', 2]
表示使用for循环和enumerate枚举函数,进行遍历操作时,L对象当中的item项目数据,可以是复合数据。
L对象List列表类操作小结
列表列表扩展类L,是一个有序的对象集合。
slice切片[start:stop:step],步长step 为正数时,从左至右;步长step 为负数时,从右至左。
extend扩展函数,如果要将两个L对象合并为一个L对象。
copy复制L对象,不要使用=赋值操作符,来复制L对象,应当使用copy方法。
赋值操作,都指向同一个对象,如果修改一个L对象,另一个也会改变;如果想让另一个变量引用一个现有L对象,可以使用=赋值操作符;如果想建立L对象副本,必须使用copy 方法。
从L对象弹出对象 pop,根据对象的idx下标索引值,删除和返回一个对象obj。如果调用pop时没有指定idx索引值,将删除和返回列表中的最后一个对象。如果指定了一个索引值,则会删除和返回那个位置上的对象。如果L对象为空,或者调用pop时指定了一个不存在的索引值,会报错。
从L对象中删除obj项目数据,使用 remove函数,从L对象删除指定obj对象的第一次出现。如果在L对象找到了obj项目数据,就会删除obj项目数据(同时L对象的大小减一)。如果在L对象中没有找到这个obj项目数据值,会报错。
insert/append,插入/增加obj项目数据。insert 方法,将一个obj插入到现有L对象中指定idx下标索引值的前面。这样就可以将obj对象,插入到现有L对象开头,或者插入到任何位置。要把obj对象,插入到L对象末尾,使用append函数。
更多资料请参见: 极宽量化公众号,免费订阅,欢迎大家关注。 | FASTAI智能量化论坛http://zwPython.com/forum.php?mod=forumdisplay&fid=65 【极宽QQ群】l 群号:1057170501 ,zwPython.com学习QQ群,面向py初学者和大众小白用户。l 群号:124134140,TOP极宽金融量化,三千人超大QQ群,面向专业金融实盘用户。l 群号:699266891,TFB极宽足球大数据QQ群 。l 群号:790548107,FASTAI智能量化。 |