出品:Python数据之道

作者:Peter

编辑:Lemon

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

  • zip

  • filter

  • enumberate

  • reversed/reverse

  • eval

1、zip

引例

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

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

x = [1,2,3]
y = [4,5,6]
  1. for循环实现

  1. zip实现

具体实现过程

查看使用文档

help(zip)

zip接受一个序列

  1. 空序列

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

zip接受多个序列

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

## 列表、元组、集合、字符串的随意组合
a = [1,2,3]
b = {4,5,6}
c = (7,8,9)
d = "zip"
print(list(zip(a,b)))  # 列表+集合
print("------------")
print(list(zip(a,c)))  # 列表+元组
print("------------")
print(list(zip(b,d)))  # 集合+元组
print("------------")
print(list(zip(c,d)))  # 元组+字符串
print("------------")
print(list(zip(a,b,c)))  # 列表+集合+字符串

zip处理不同长度

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

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

2、filter

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

查看帮助文档

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

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

help(filter)

使用自定义函数

使用匿名函数lambda

直接筛选条件

list(filter(lambda x: x>1, [0,1,9,-4,8,100]))

具体结果为:

[9, 8, 100]

字符筛选

list(filter(lambda x: x!="shenzhen", ["guangzhou","shanghai","shenzhen","changsha"])) # 筛选不满足要求的字符串
['guangzhou', 'shanghai', 'changsha']

3、enumerate

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

在 Python的 for循环中使用的非常广泛。

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

查看帮助文档

help(enumerate)

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

4、reversed

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

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

查看帮助文档

help(reversed)

用于列表

用于元组

用于字符串

4.1 reverse

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

只针对列表!!!!!!

demo

集合不能用reverse

方法只针对列表

# 集合反向
set1 = {1,"python",3,"java",5}
set1.reverse()  # 集合没有reverse方法,该方法只针对列表

5、eval

语法

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

eval(expression[, globals[, locals]])

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

例子

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

带上参数

三个参数的意义:

  • expression :字符串

  • globals :变量作用域,全局命名空间;如果被提供,则必须是一个字典对象

  • locals :变量作用域,局部命名空间;如果被提供,可以是任何映射对象

当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的:当globals和locals中有冲突的部分时,locals有决定权。

如果locals没有被 提供的话,则默认为globals。

理解expressions

s = "abcd"
eval(s)

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

单引号和双引号区别

最外层一定要使用单引号

作者简介

Peter,硕士毕业僧一枚,从电子专业自学Python入门数据行业,擅长数据分析及可视化。喜欢数据,坚持跑步,热爱阅读,乐观生活。个人格言:不浮于世,不负于己

个人站点:www.renpeter.cn,欢迎常来小屋逛逛


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取一折本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。加入微信群请扫码:

【Python基础】Python 打基础一定要吃透这 5 个内置函数相关推荐

  1. python 2x可以打么_Python打基础一定要吃透这68个内置函数

    内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等. 截止到python版本3.6.2 ,python一共提供了68个内置函数,具体如下 abs() dict() h ...

  2. Python打基础一定要吃透这68个内置函数

    内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等. 截止到python版本3.6.2 ,python一共提供了68个内置函数,具体如下

  3. python中表达式4**0.5的值为_Python内置函数__用来返回序列中的最小元素

    [填空题]表达式 int(4**0.5) 的值为 [判断题]3+4j不是合法的Python表达式. [填空题]已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为 [填 ...

  4. 【Python基础】Python初学者必须吃透这69个内置函数!

    所谓内置函数,就是Python提供的, 可以直接拿来直接用的函数,比如print,enumerate.format等.Python内置的这些函数非常精巧且强大的,对初学者来说,经常会忽略,但是偶尔会碰 ...

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

    出品:Python数据之道 作者:Peter 编辑:Lemon 本文中介绍 Python 中 5 个高阶内置函数,它们不仅能够帮助我们了解 Python 的数据结构,同时也能加快数据处理的速度,体会到 ...

  6. 【Python中的】列表生成式和字典生成式以及内置函数

    前言: 在Python中可以使用列表生成式进行代码的简化,并且提高代码的运行效率, Python中的内置函数可以使得在工作需求中,进行简单的代码运算并且不再进行 相应的函数定义,可以提高工作效率,本篇 ...

  7. python 内部函数,以及lambda,filter,map等内置函数

    1 #!/usr/bin/python 2 #encoding=utf-8 3 4 def back(): 5 return 1,2, "xxx" 6 7 #python 可变参数 ...

  8. python学习笔记(装饰器、迭代器生成器、内置函数、软件目录开发规范)

    装饰器 定义:本质是函数,(功能:装饰其他函数):就是为其他函数添加附加功能 模拟场景一,在现有的函数中增加某个功能.现有的做法是定义新函数,并且加入函数中.需要修改源代码. def logger() ...

  9. Python中几个冷门但非常好用的内置函数

    Python中有许多内置函数,不像print.len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性 Counter collections在pyt ...

最新文章

  1. Android开发之动态库调用
  2. css border 虚线间距_一小时快速了解 CSS 基础
  3. 缺省参数-指定函数缺省参数的默认值
  4. 3_8 StateMode 状态模式
  5. 每月1000元存入余额宝或银行,十年后会有多少?
  6. unity怎么设置游戏页面_杭州有没有正规的unity游戏开发培训机构?
  7. 【Ubuntu引导】EFI系统分区.删除不掉,也不能格式化,如何粘力删除 efi 隐藏分区
  8. 364 页 PyTorch 版《动手学深度学习》分享(全中文,支持 Jupyter 运行)
  9. 如何清洗 Git Repo 代码仓库
  10. UVa 12174 (滑动窗口) Shuffle
  11. mysql 主从 外部连接_集群之MYsql主从服务之引伸出Mysql互为主从(环形结构)外加简单实现自己个人的负载均衡器(3)-阿里云开发者社区...
  12. 如何根据一张照片判断出女孩住在几层楼?
  13. c语言代码怎么转成java,急C语言代码转成java代码,该如何解决
  14. iMindMap中的虚线箭头如何进行使用
  15. 手写的计算机论文范文,手写2000论文格式模板_科技论文手写格式模板
  16. java编写程序防止电脑屏幕休眠
  17. iOS 限制输入框的字符长度
  18. 简单几步,让Mac外接显示器更好用
  19. 软件工程大作业——设计阶段
  20. svn update冲突解决

热门文章

  1. oracle 12 问题:需要 Oracle 客户端软件 8.1.7 或更高版本
  2. 实用ExtJS教程100例-002:MessageBox的三种用法
  3. 为moss添加展现reporting service的webpart
  4. HDU1568 Fibonacci
  5. 微信小程序开发02-小程序基本介绍
  6. 获取本地的json并展示
  7. String,StringBuffer与StringBuilder
  8. SLAM学习--2D激光SLAM-圣经-概率机器人学各种扩展
  9. Xilinx Platform Cable USB II 下载器驱动安装教程——Win10
  10. 问题 | Matlab:Fatal Error on startup(致命错误)