189 8069 5689

pop函数Python pop函数python用法

Python 用pop()删除列表元素时为什么会隔一个元素?

不是隔一个元素

吴起网站建设公司成都创新互联公司,吴起网站设计制作,有大型网站制作公司丰富经验。已为吴起1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的吴起做网站的公司定做!

是因为你已经删掉前面的一个对应的位置也就变了。

比如a=['妈妈','爸爸','奶奶','爷爷','姐夫','毛珊','毛豆','姐姐','姑姑','姑父',"霖霖']

此时a[2]为'奶奶' ,a[3]为'爷爷'

a.pop(2)

那么a就变成了

['妈妈','爸爸','爷爷','姐夫','毛珊','毛豆','姐姐','姑姑','姑父',"霖霖']

此次a[2]为'爷爷',a[3]为'姐夫'

所以如果你想依次删掉对应的几个比如'奶奶','爷爷','姐夫','毛珊'

你可以从后往前删,这样前面的位置不受影响

a.pop(5)

a.pop(4)

a.pop(3)

a.pop(2)

python电子邮件系列(三)之POP接收邮件

由上篇文章我们已经得知邮件从发送到接收的过程:

发件人-MUA-MTA-若干MTA-MDA-MUA-收件人

本节接收邮件主要就是编写一个 MUA 客户端,从 MDA 将邮件取回本地。

收取邮件最常用的是 POP协议 ,目前版本是第三版,也称 POP3 。python内置了 poplib 模块,支持POP3协议。

回想上一节 SMTP ,我们对要发送的邮件内容进行了各种编码,包括添加MIME header,编码之后再进行发送。

因此,我们通过POP3协议接收的也不是原内容,而是经过一系列编码等处理的文本。

所以,要想把POP3收取的文本变为可阅读的邮件对象,就需要利用 email 模块对原始邮件进行解析。

所以,邮件收取的流程就是:

由上一篇 文章 最后总结部分可知。邮件由字符到发送到网络经历了如下的格式转化:

纯文本:

str-bytes-base64-str-bytes

二进制文件:

binary code-base64-str-bytes

我们解析邮件也是按这个思路,逆序解析出内容。

这里的 decode('utf-8') 先把字节流转化为字符串,再将字符串转化为 message 结构的对象。这步与发送邮件的 as_string 函数相反。

先从上一节结构化的 msg 中取出信件头,打印出来。

如果是 multipart 结构, get_payload 函数会返回一个包含不同part的list,然后对每一part递归调用 print_info ,打印子信件头和子信件内容。

不是 multipart 时,之后再依据 Content-Type 作不同处理:

如果是 text :

利用 get_payload(decode = Ture) 取出子信件的内容, decode 为True,则按照 Content-Transfer-Type 将 base64 或 QP 解码为 bytes 。

再 guess_charset 猜出编码方式,之后将其解码为字符显示。

如果不是 Text 对象,则为附件:

打印出附件的 Content-Type 。

Python用POP语句弹出列素元素后,如何回到最初列表?(我是初学者)

这样写就可以了:

message=['a','b','c','d']

clone_message=message[:]

popped_message=clone_message.pop(0)

print(message)

print(popped_message)

运行结果如下图:

python 集合的pop实际应用中能干什么?

集合set的pop随机删除一个元素,并返回删除的元素。set里元素不重复且无序。既然是随机,你要控制什么。

字典也有pop,根据字典的key删除对应的键值对,并返回删除的那个值。

而且字典的pop还有第二个可选参数,比如dic.pop('aaa','没找到对应key')。如字典dic中存在key为aaa,那么删除这个key和它对应的值,并返回对应值。否则直接返回第二个参数内容。


分享名称:pop函数Python pop函数python用法
URL地址:http://cdxtjz.cn/article/doopjgc.html

其他资讯