教女朋友学Python(8)——排排坐吃果果

编程是一门要动手的学问,我在必要的地方用动态截图是可以保证阅读的完整性,但是那仅仅是我敲的代码。

上一期,出现了一个新的数据类型,形式是这样的[url1,url2,url3,url4.....]。他不属于我们说的五种基本数据类型,那么他是什么呢?答案是:list,列表。那至于列表是什么,我想都不用我给眼神就能自己体会了。

想想看我们自己列个新年计划、买买买清单、旅游计划啥的,就是创建了一个列表;可能写错了或者取消了,就得从列表中删除;有了新计划就得往列表里面添加;要执行某一项就得从中选取某一项;我们就从这些方面来说明列表怎么用。

首先,定义列表。形式如上所述,一个中括号将内容括起来,列表的内容用逗号隔开[item1,item2,item3,item4]。里面的Itme可以是不同的数据类型,如下:

我们的这个列表用到了四种基本数据类型,那么None呢?当然也可以。既然我们说了列表也是一种数据类型,那么列表能不能作为另一个列表的元素呢?

答案是:能!请看:

如果我要查看列表中的第几个要素,就可以列表后面加中括号,括号里面是序号。注意,在计算机领域,绝大多数情况下都是从0开始数的,所以要查看list1的第一个要素,就得是list1[0]。如果要查看倒数第一个要素,倒是list1[-1]。

最后一个展示了当我的索引值超过了范围时出现的错误。因为list1有4个要素,正向从0开始数,分别是0,1,2,3。4就超过范围了,所以会出错。

要添加一个要素怎么办,比如同学们想试试看我刚刚说的None也是可以加进去的说法对不对。用append()。或者有的人想把一个要素插入指定的位置,理所当然的,用insert()。

注意用insert时前面一个参数是序号,也就是0,1,2,3,4,想新插进去的元素以后的序号是多少,这个参数的值就应该是多少。

加完了就是删除了,删除用pop()。pop(-2),就是删除序号是-2也就是倒数第二个要素。pop(3)就是删除序号是3,正数第四个要素。如果不带参数,直接pop(),那就是删除最后一个要素。有一点要注意,pop()是有返回值的,还记得函数里面的返回值么,他的返回值就是删除的那个要素。

好了,重点来了,还记得我们上期获取到的数据么?一共28条,也就是我们获取到的列表里面有28个要素,难道我要每次从从0取到27,这么蠢的事情,从来不是程序员做的。做过的请默默地离开程序员的队伍,记得带好门。

如何轻松愉快的处理列表里面的每一个要素呢,那就轮到循环出场了。所谓循环嘛,就是一遍又一遍的去做一件事,只不过每次用的是列表里面的不同的要素。循环的格式是:

for itme in items:

    #do something

用人话翻译过来,就是对于itmes里面的每一个item,都用来搞点事情。比如我们要从上期得到获取到的数据imglist中下载图片:
for imgurl in imglist:
    filename = imgurl.split("/")[-1]
    request.urlretrieve(imgurl, filename)
就是对于imglist里面的每一个imgurl,都用来下载url相应的图片。

还记得我们说过在python里面用冒号和缩进表示逻辑关系么,看上面for循环语句,下面的两句代码都是每次循环中要干的事情。第一语是给这次要下载的文件搞个名字,名字就从url里面来。比如对于url:'http://a2.att.hudong.com/74/55/19300534135873134543558063175.jpg',最后的xxxx.jpg用来当文件名最好,于是就从这一串url里面取出来,首先根据反斜杠“/”进行切分。想想进行切分之后是不是应该有好多个部分,那是什么数据类型呢?对,就是我们今天说的列表。然后从中取出倒数第一个,就是文件名了。列表好用吧。

第二句就是下载了,从url下载,保存成filename。还记得request是哪个模块的东西吧?

好了,现在我们可以下载了。试试看吧,你的py文件所在的文件夹是不是有图片了。

可能,有的人有了,有的人没有,还报错了,有的人有也报错了。为什么错呢,因为网络这东西,有时候就是很迷啊。从网上下东西,很难保证百分百成功的,就算我是迅雷年费砖石最高级VIP都不例外。下期就来说,遇到这种错误怎么处理。

另外,在python里面还有一个跟列表很像的东西,叫元组(tuple),他定义了之后里面的要素是不可变的,和列表用中括号不同,他是用圆括号表示。比如:

tuple1 =(1,2)
tuple2 = (3,)

定义了就定义了,没有pop(),append(),insert()这些来闹眼子。至于为什么定义tuple2时一个元素的时候要在后面加一个逗号,是因为避免和数学运算里面的括号混淆呀。

欢迎关注我的微信公众号获取最新文章:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值