zwPython.com研习社

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3317|回复: 0

FASTAI2列表扩展类L#6:常用list内置函数·下

[复制链接]

233

主题

240

帖子

5503

积分

超级版主

Rank: 8Rank: 8

积分
5503
发表于 2020-9-10 10:19:03 | 显示全部楼层 |阅读模式
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智能量化。


【极宽QQ群】
群号:1057170501 ,zwPython.com学习QQ群,面向py初学者和大众小白用户。
群号:124134140,TOP极宽金融量化,三千人超大QQ群,面向专业金融实盘用户。
群号:699266891,TFB极宽足球大数据QQ群
群号:790548107,FASTAI智能量化QQ群。
【微信公众号】
请大家关注TOP极宽量化公众号,大量原创Python量化技术
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|zwPython.com研习社

GMT+8, 2023-4-1 13:41 , Processed in 0.028648 second(s), 4 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表