文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python重要的功能有哪些

2023-06-16 15:53

关注

这篇文章主要介绍“Python重要的功能有哪些”,在日常操作中,相信很多人在Python重要的功能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python重要的功能有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 生成器——内存效率

打算计算大量的结果,但同时又想避免同时分配所有结果所需内存,这时候会使用生成器。换句话说,它们即时生成值,但不会将先前生成的值存储在内存中,因此只需要将其迭代一次。  生成器常用于读取大型文件或使用关键字yield生成无穷序列。在大多数数据科学项目中,笔者发现它颇有用处。

def  gen(n):    # an infinite sequence  generator that generates integers >= 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

2. 虚拟环境——隔离

若读完本文,只能记住其中一条,那应该是虚拟环境的使用。

Python的应用程序经常使用很多不同的软件包,而这些软件包由具有复杂依赖关系的开发人员开发。不同的应用程序由一种特定的库设置开发出来,其结果无法由其他版本的库复制。没有一种安装程序可以满足所有应用程序的要求。

conda create -n venv pippython=3.7  # select python version source activate venv ... source deactivate

因此,为每个应用程序创建单独的虚拟环境venv至关重要,可以用 pip或conda完成。

3. 列表推导——紧致码

很多人认为lambda、map和filter是每个初学者都应该学习的函数。虽然笔者认为这些函数值得关注,但是由于它们缺乏灵活性,大多时候不是特别有用。  Lambda是将一次性使用的函数生成为一行的方法。若函数被多次调用,性能就会降低。另一方面,map将一种函数应用于列表中的所有元素,而filter则会获取集合中满足用户定义条件的元素子集。

add_func  = lambda z: z ** 2 is_odd =  lambda z: z%2 == 1 multiply  = lambda x,y: x*y aList =  list(range(10)) print(aList) 4 # [0, 1,  2, 3, 4, 5, 6, 7, 8, 9]

列表推导是一种简洁灵活的方法,可从其他具有灵活表达式和条件的列表中创建新列表。它由一个带有表达式或函数的方括号构成,只有当元素满足特定条件时,才能应用于列表中的每个元素。它也可以通过嵌套来处理嵌套列表,这比用map和filter要灵活得多。

# Syntax of list comprehension [ expression(x) for x in aList if optional_condition(x)]
print(list(map(add_func,  aList))) print([x  ** 2 for x in aList]) # [0, 1,  4, 9, 16, 25, 36, 49, 64, 81] # [0, 1,  4, 9, 16, 25, 36, 49, 64, 81] print(list(filter(is_odd,  aList))) print([x  for x in aList if x%2 == 1]) # [1, 3,  5, 7, 9] # [1, 3,  5, 7, 9]

4. 列表操作——循环列表

Python允许在aList[-1]==  aList[len(aList)-1]中出现负索引。因此,可以通过调用aList[-2]等其他元素来获取列表中的倒数第二个元素。

还可以用aList[start:end:step]语法对列表进行切片,该语法包括起始元素,但不包括终止元素。因此,调用aList[2:5]会得到[2, 3,  4]。也可以通过调用aList[::-1]来反转列表,笔者发现这种技巧非常简洁。

列表也可以解压缩为单独的元素,或者解压缩为元素和子列表,两者混在一起,用星号标出。

a, b, c,  d = aList[0:4] print(f'a  = {a}, b = {b}, c = {c}, d = {d}') # a = 0,  b = 1, c = 2, d = 3 a, *b,  c, d = aList print(f'a  = {a}, b = {b}, c = {c}, d = {d}') # a = 0,  b = [1, 2, 3, 4, 5, 6, 7], c = 8, d = 9

5. 压缩(Zipping)和列举(enumerate) ——for循环

压缩  (Zip)函数创建了一种迭代程序,该程序可聚合来自多个列表的元素。它允许在for循环中并行遍历列表并进行并行分类。用星号即可将其解压缩。

numList  = [0, 1, 2] engList  = ['zero', 'one', 'two'] espList  = ['cero', 'uno', 'dos'] print(list(zip(numList,  engList, espList))) # [(0,  'zero', 'cero'), (1, 'one', 'uno'), (2, 'two', 'dos')] for num,  eng, esp in zip(numList, engList, espList):     print(f'{num} is {eng} in English and  {esp} in Spanish.') # 0 is  zero in English and cero in Spanish. # 1 is  one in English and uno in Spanish. # 2 is  two in English and dos in Spanish.
Eng =  list(zip(engList, espList, numList)) Eng.sort()  # sort by engList a, b, c  = zip(*Eng) print(a) print(b) print(c) #  ('one', 'two', 'zero') #  ('uno', 'dos', 'cero') # (1, 2,  0)

乍一看,列举(Enumerate)  可能有点吓人,但是后来就会发现,在很多情况下使用列举都很方便。它是一种经常用于for循环的自动计数器,因此无需在counter = 0 和counter +=  1的情况下创建并初始化变量计数器。列举(enumerate) 和压缩(zip)是创建for循环时会用到的两种功能很强大的工具。

upperCase  = ['A', 'B', 'C', 'D', 'E', 'F'] lowerCase  = ['a', 'b', 'c', 'd', 'e', 'f'] for i,  (upper, lower) in enumerate(zip(upperCase, lowerCase), 1):     print(f'{i}: {upper} and {lower}.') # 1: A  and a. # 2: B  and b. # 3: C  and c. # 4: D  and d. # 5: E  and e. # 6: F  and f.

到此,关于“Python重要的功能有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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