文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python实用的技巧有哪些

2023-06-16 13:50

关注

这篇文章主要讲解了“Python实用的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python实用的技巧有哪些”吧!

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. 计数器——生成对象的计数

计数器是字典的一个子类,其中对象的元素是键,而对象中项目的计数是值。它对计算对象的数量有效。访问计数器时需要导入内置的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. 链接多个集合

如需一次迭代多个集合,则itertools模块中的链接方法是实现这一目标的好方法。

for name in itertools.chain(first_name_list, second_name_list):    create_person(name)

在耗尽之前,这将迭代第一个集合,然后继续进行下一个,依此类推。

感谢各位的阅读,以上就是“Python实用的技巧有哪些”的内容了,经过本文的学习后,相信大家对Python实用的技巧有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯