Python有如此出色的支持网络,似乎一次可以解决很多问题。人们应该认识到这是正常现象。
站在用户的角度思考问题,与客户深入沟通,找到金牛网站设计与金牛网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟主机、企业邮箱。业务覆盖金牛地区。
但初学者可能会对此感到困惑。人们可以找到大量资源来解决基础知识问题,但然而呢?要学习哪些资源以不断进步呢?
在这里,笔者列出了5个最有用的代码段,这些代码段进一步提高了笔者的水平,使代码变得更好。
下文将介绍如何在代码中应用这5个代码段。
1. 列表推导式
有人或许以前听说过这些。Python中的一种编码模式十分常见,因此需要进行修改。使用for循环创建列表是列表推导的价值所在。
列表推导式可读且简洁,也确实需要花费一些时间来了解发生了什么。下面将深入研究是否可以解决这个问题。
创建列表时应考虑列表推导式。列表推导式从一组方括号开始。先不管语法,以便展示两种语言的相似之处
- list_comp = [expression for itemin items]
任务是要替换一个for循环,该循环将项目添加到列表中。
- new_list = []
- for item in old_list:
- new_list.append(item**2)
注:
目前为止很简单。
列表推导如下所示
- new_list = [item**2 for item inold_list]
注:
没有附加方法或是不需要,一行代码正适合!为了选择要添加的内容,甚至可以添加条件语句。此功能还扩展到集合和词典!甚至可以使用嵌套的for循环编写列表推导式!
请注意,可能会出现过度使用的情况!仅当列表循环很简单并且明确要创建列表时,才会使用列表推导。
2.生成器表达式——节省内存使用量
当拥有大量数据集并需要对其进行迭代或从中获取结果,却无法将所有数据存储在内存中时,应想到生成器函数。除了不返回而为关键字yield进行切换操作,生成器函数非常像一个函数。
生成器函数创建了迭代器,而迭代器需要强制输出它所拥有的值。它们不会在列表或集合中存储对象。一次也只输出一项。这称为延迟循环。因此,读取大文件时使用生成器。
- def gen(n):
- while True:
- yield n
- n += 1 G = gen(3) # starts at 3
- print(next(G)) # 3
- print(next(G)) # 4
- print(next(G)) # 5
- print(next(G)) # 6
注:
现在,这些值不会被存储,只有在调用next()方法时才会跳出。生成器创建一个迭代器,然后依赖next()方法输出值。
当有一个大数据集并且想要流式传输数据而不会使内存溢出时,这将很有用。
3. 使用zip迭代两个对象
经常想迭代多个对象,以便能从每个对象中收集数据。Zip是允许执行此操作的函数!如果需要迭代充分理解文件名及其对应的链接,可以这样做。
- for file_name, link in zip(names, links):
- print(file_name, link)
这将同时进入两个对象,返回一个元组以及每个元组中的对应项。在循环中,将元组解压为单独的值file_name和link. zip()。可以根据需要选择任意数量的集合,但是当最短的集合用尽时它将停止。
通过本文提及的列表推导式,Zip函数可用于迭代同一对象中的成对元素。
例如:
- differences = [next_el - elt for el, next_el in zip(items, items[1:])
4. 计数器——生成对象的计数
来源:Pexels
计数器是字典的一个子类,其中对象的元素是键,而对象中项目的计数是值。它对计算对象的数量有效。访问计数器时需要导入内置的collections模块。
假设要计算列表中所有出现的字符串。
- import collections
- counts = Counter([ Fred , Samantha , Jean-Claude , Samantha ])
- print(counts)
输出:
- Counter({ Samantha : 2, Fred :1, Jean-Claude : 1})
计数器类的优点是可以对其进行更新,并且可以使用字典API来访问值。
- from collections import Counter
- c = Counter( abcdaab )for letter in abcde :
- print(letter, : , c[letter])
输出:
- a : 3
- b : 2
- c : 1
- d : 1
- e : 0
注:
5. 链接多个集合
来源:Pexels
如需一次迭代多个集合,则itertools模块中的链接方法是实现这一目标的好方法。
- for name in itertools.chain(first_name_list, second_name_list):
- create_person(name)
在耗尽之前,这将迭代第一个集合,然后继续进行下一个,依此类推。
希望您喜欢这篇文章。
文章题目:你需要知道的5个Python技巧
URL分享:http://www.shufengxianlan.com/qtweb/news36/43986.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联