首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Python基础】学习Python 一定要吃透这 5 个内置函数

【Python基础】学习Python 一定要吃透这 5 个内置函数

作者头像
黄博的机器学习圈子
发布2020-11-09 14:56:27
发布2020-11-09 14:56:27
1K0
举报

出品:Python数据之道

作者:Peter

编辑:Lemon

本文中介绍 Python 中 5 个高阶内置函数,它们不仅能够帮助我们了解 Python 的数据结构,同时也能加快数据处理的速度,体会到 Python 的强大。

  • zip
  • filter
  • enumberate
  • reversed/reverse
  • eval

1、zip

引例

首先,我们先来学习一个非常强大的内置函数: zip。通过一个例子来引出 zip的使用:

需求:如果我们想对两个列表对应位置上的数字一一求和,该如何操作?

代码语言:javascript
复制
  1. x = [1,2,3]
  2. y = [4,5,6]
  3. for循环实现
  1. zip实现

具体实现过程

查看使用文档

代码语言:javascript
复制
  1. help(zip)

zip接受一个序列

  1. 空序列
  1. 接受列表、元组、集合、字符串

zip接受多个序列

接受列表、元组、集合、字符串的任意组合:

代码语言:javascript
复制
  1. ## 列表、元组、集合、字符串的随意组合
  2. a = [1,2,3]
  3. b = {4,5,6}
  4. c = (7,8,9)
  5. d = "zip"
  6. print(list(zip(a,b))) # 列表+集合
  7. print("------------")
  8. print(list(zip(a,c))) # 列表+元组
  9. print("------------")
  10. print(list(zip(b,d))) # 集合+元组
  11. print("------------")
  12. print(list(zip(c,d))) # 元组+字符串
  13. print("------------")
  14. print(list(zip(a,b,c))) # 列表+集合+字符串

zip处理不同长度

上面的多个元素的长度都是相同的,下面的例子来展示 zip处理不同长度的序列。

我们发现:zip会选择最小长度的序列进行合并

2、filter

filter本身是 过滤的意思:就是将那些不符合我们要求的数据直接过滤舍弃掉,剩下那些符合要求的数据。

查看帮助文档

将序列中的每个元素传递给函数,执行的结果为 True或者 False,将结果为 True的元素放入新的列表中。

返回的是 filter对象。如果想看具体的数据,需要使用 list来展开。

代码语言:javascript
复制
  1. help(filter)

使用自定义函数

使用匿名函数lambda

直接筛选条件

代码语言:javascript
复制
  1. list(filter(lambda x: x>1, [0,1,9,-4,8,100]))

具体结果为:

代码语言:javascript
复制
  1. [9, 8, 100]

字符筛选

代码语言:javascript
复制
  1. list(filter(lambda x: x!="shenzhen", ["guangzhou","shanghai","shenzhen","changsha"])) # 筛选不满足要求的字符串
代码语言:javascript
复制
  1. ['guangzhou', 'shanghai', 'changsha']

3、enumerate

enumeratePython的一个重要内置函数,返回的是可迭代序列的元素和下标,对列表、集合、字典、字符串等都适用的。

Pythonfor循环中使用的非常广泛。

如果想查看结果,需要使用list函数来进行显示。

查看帮助文档

代码语言:javascript
复制
  1. help(enumerate)

用于列表、集合、元组、字符串、字典

4、reversed

reversed()函数是返回序列 seq反向访问的迭代器。

参数可以是 列表,元组,字符串,不改变原对象均可。下面通过具体的例子来说明:

查看帮助文档

代码语言:javascript
复制
  1. help(reversed)

用于列表

用于元组

用于字符串

4.1 reverse

用于对列表中的元素反向排序,方法没有返回值,只是对列表中的元素进行反向排序

只针对列表!!!!!!

demo

集合不能用reverse

方法只针对列表

代码语言:javascript
复制
  1. # 集合反向
  2. set1 = {1,"python",3,"java",5}
  3. set1.reverse() # 集合没有reverse方法,该方法只针对列表

5、eval

语法

eval 直接返回传入字符串的表达式的结果,语法为:

代码语言:javascript
复制
  1. eval(expression[, globals[, locals]])

下面通过几个例子来直接讲解该方法的使用

例子

字符串和列表、字典、集合的转化

带上参数

三个参数的意义:

  • expression :字符串
  • globals :变量作用域,全局命名空间;如果被提供,则必须是一个字典对象
  • locals :变量作用域,局部命名空间;如果被提供,可以是任何映射对象

当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的:当globals和locals中有冲突的部分时,locals有决定权。 如果locals没有被 提供的话,则默认为globals。

理解expressions

代码语言:javascript
复制
  1. s = "abcd"
  2. eval(s)
代码语言:javascript
复制
  1. # eval先将‘s’的引号剥去,得到s.不可以进行计算,开始查找s是否是一个变量的名字,查找到s是一个字符串,所以程序输出了s中的内容
  2. s = "abcd"
  3. eval('s')
  4. # 结果为:
  5. 'abcd'

单引号和双引号区别

最外层一定要使用单引号

作者简介 Peter,硕士毕业僧一枚,从电子专业自学Python入门数据行业,擅长数据分析及可视化。喜欢数据,坚持跑步,热爱阅读,乐观生活。个人格言:不浮于世,不负于己 个人站点:www.renpeter.cn,欢迎常来小屋逛逛

------- End -------

加入微信群请扫码:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习初学者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、zip
    • 引例
    • 查看使用文档
    • zip接受一个序列
    • zip接受多个序列
    • zip处理不同长度
  • 2、filter
    • 查看帮助文档
    • 使用自定义函数
    • 使用匿名函数lambda
    • 直接筛选条件
    • 字符筛选
  • 3、enumerate
    • 查看帮助文档
    • 用于列表、集合、元组、字符串、字典
  • 4、reversed
    • 查看帮助文档
    • 用于列表
    • 用于元组
    • 用于字符串
  • 4.1 reverse
    • demo
    • 集合不能用reverse
  • 5、eval
    • 语法
    • 例子
    • 带上参数
    • 理解expressions
    • 单引号和双引号区别
  • ------- End -------
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档