大奖18dj18vip-大奖18dj18娱乐官网

【腾讯云】618云聚惠,百款云产品限量抢购,1核2G云服务器首年95元 http://cloud.tencent.com/act/cps/redirect?redirect=1059&cps_key=9f7b3aa0b9ee11c8648ef8bf9d4f15a9&from=console

大奖18dj18vip

大奖18dj18vip 门户 教程 电脑网络 查看内容

你需要知道的5个Python技巧

2020-3-27 13:50| 发布者: 虚拟主机评测| 查看: 18| 评论: 0

摘要: Python有如此出色的支持网络,似乎一次可以解决很多问题。人们应该认识到这是正常现象。但初学者可能会对此感到困惑。人们可以找到大量资源来解决基础知识问题,但然而呢?要学习哪些资源以不断进步呢?在这里,笔者列 ...

Python有如此出色的支持网络,似乎一次可以解决很多问题。人们应该认识到这是正常现象。

但初学者可能会对此感到困惑。人们可以找到大量资源来解决基础知识问题,但然而呢?要学习哪些资源以不断进步呢?

在这里,笔者列出了5个最有用的代码段,这些代码段进一步提高了笔者的水平,使代码变得更好。

下文将介绍如何在代码中应用这5个代码段。

1. 列表推导式

有人或许以前听说过这些。Python中的一种编码模式十分常见,因此需要进行修改。使用for循环创建列表是列表推导的价值所在。

列表推导式可读且简洁,也确实需要花费一些时间来了解发生了什么。下面将深入研究是否可以解决这个问题。

创建列表时应考虑列表推导式。列表推导式从一组方括号开始。先不管语法,以便展示两种语言的相似之处

  1. CIMAl; border: none; line-height: 21px; font-family: Arial; background: url("http://images.51cto.com/images/art1105/images/0.gif") -498px -70px repeat-y scroll transparent; color: inherit; padding: 0px 3px 0px 10px !important; margin: 0px !important; list-style-position: outside !important;">list_comp = [expression for itemin items] 

任务是要替换一个for循环,该循环将项目添加到列表中。

  1. new_list = [] 
  2. for item in old_list: 
  3.     new_list.append(item**2) 

注:

  • 调用名为new_list is calledt
  • for循环遍历旧列表中的项目
  • 使用添加方法将item ** 2添加到新列表中 

目前为止很简单。

列表推导如下所示

  1. new_list = [item**2 for item inold_list] 

注:

  • 将表达式item **2作为要添加到列表中的表达式,这首先出现在列表推导式中。
  • 之后的for循环是要迭代的循环
  • 将其括在方括号中并为其分配变量new_list意味着,为循环的每个项目将表达式item ** 2添加到new_list中。

没有附加方法或是不需要,一行代码正适合!为了选择要添加的内容,甚至可以添加条件语句。此功能还扩展到集合和词典!甚至可以使用嵌套的for循环编写列表推导式!

请注意,可能会出现过度使用的情况!仅当列表循环很简单并且明确要创建列表时,才会使用列表推导。

2.生成器表达式——节省内存使用量

当拥有大量数据集并需要对其进行迭代或从中获取结果,却无法将所有数据存储在内存中时,应想到生成器函数。除了不返回而为关键字yield进行切换操作,生成器函数非常像一个函数。

生成器函数创建了迭代器,而迭代器需要强制输出它所拥有的值。它们不会在列表或集合中存储对象。一次也只输出一项。这称为延迟循环。因此,读取大文件时使用生成器。

  1. def gen(n):                            
  2.  
  3.    while True: 
  4.  
  5.        yield n 
  6.  
  7.        n += 1                                                      G = gen(3)     # starts at 3 
  8.  
  9. print(next(G)) # 3 
  10.  
  11. print(next(G)) # 4 
  12.  
  13. print(next(G)) # 5 
  14.  
  15. print(next(G)) # 6 

注:

  • 创建函数gen
  • Yield关键字存储值n,一直保留到调用next()方法为止
  • 使用赋值运算符,将1加到n
  • 这是一个无限循环,并一直持续
  • 调用next()方法,它将继续输出值

大奖18dj18vip社区温馨提示:
大奖18dj18vip(www.dastanona.com)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
1、大奖18dj18vip有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),大奖18dj18vip有权不事先通知即删除涉嫌侵权的作品和内容
2、大奖18dj18vip将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
3、大奖18dj18vip影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若大奖18dj18vip收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
4、大奖18dj18vip,删帖,投诉,举报,侵权,若大奖18dj18vip侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除
12下一页

鲜花

握手

雷人

路过

鸡蛋

最新评论

资讯分类

推荐图文

文章排行

Powered by www.dastanona.com Copyright © 2013-2020 大奖18dj18vip社区 小黑屋|手机版|地图|关于我们|腾讯云代金券|帮助中心|公共DNS|大奖18dj18vip
广告服务/项目合作: kefu-sosoba@qq.com  侵权举报邮箱: kefu-sosoba@qq.com  大奖18dj18vip建站时间:创建于2013年07月23日
免责声明:大奖18dj18vip所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,大奖18dj18vip不承担任何的法律责任,若有侵权请来信告知,我们立即删除!

GMT+8, 2020-5-27 10:40 , Processed in 1.090853 second(s), 8 queries , MemCache On.

返回顶部