【python】打基础一定要吃透这 5 个内置函数

1、zip

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

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

x = [1,2,3]
y = [4,5,6]

for循环实现
在这里插入图片描述
zip实现
在这里插入图片描述
具体实现过程:

在这里插入图片描述
查看使用文档

help(zip)

在这里插入图片描述

zip接受一个序列

  1. 空序列
    在这里插入图片描述

  2. 接受列表、元组、集合、字符串
    在这里插入图片描述

  3. 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)))  # 列表+集合+字符串
    

    在这里插入图片描述

  4. 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

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

只针对列表!!!!!!
在这里插入图片描述
集合不能用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'

单引号和双引号区别
最外层一定要使用单引号
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值