python基础(14内置函数介绍)

python系列文章目录

python基础(01变量&数据类型&运算符)
python基础(02序列共性)
python基础(03列表和元组)
python基础(04字符串&字典)
python基础(05集合set)
python基础(06控制语句)
python基础(07函数)
python基础(08类和对象)
python基础(09闭包&装饰器)
python基础(10异常处理)
python基础(11文件读取)
python基础(12迭代器&生成器)
python基础(13魔法方法介绍)



前言

本文主要讲python中的一些内置函数,这些函数,动手敲一遍,理解其用法即可,python基础系列到这一篇,基本进入尾声了,加油!


一、map()

1.概念

  • 可以接收两个参数,一个是函数、一个是序列
  • map将传入的函数依次作用到序列的每个元素
  • 并把结果作为新的list返回

2.例子1

一个函数f(x)=x2 函数作用在一个list[1,2,3,4,5] 求平方

普通实现

a=[1,2,3,4,5,6,7,8]
def f(x):
    return x*x
result_list=[]
for i in a:
    result_list.append(f(i))
print(result_list)

map()实现

a=[1,2,3,4,5,6,7,8]
def f(x):
    return x*x
it=map(f,a)  #返回结果:可迭代的对象  会自动遍历把a的每一个元素传进函数
print(type(it))  #map  可迭代对象
print(list(it))  #map是一个可迭代对象 可直接传入list
print(list)

3.例子2

map可将数字转化成字符串

普通实现

b=10
s=str(b)
print(type(s))

map()实现

b=[1,2,3,4,5,6,7,8]
l=map(str,b)
print(list(l))    #['1', '2', '3', '4', '5', '6', '7', '8']

4.例子3

传入2个列表

a=[1,2,3,4]
b=[10,20,30]  #获取小的一个列表 按照顺序相加
def f(x,y):
    return x+y

h=map(f,a,b)
print(list(h))

5.例子4

两个列表 一个lst1 一个lst2 相同位置的元素进行比较 大的一个数赋值给lst3

def f1(x,y):
    if x>y:
        return x
    else:
        return y
a=[1,4,3]
b=[6,1,5]
#map() 是一个可迭代的对象
f=map(f1,a,b)
print(list(f))
#也可以用匿名函数
a=[3,2,1]
def f2(x):
    return x+1
b=list(map(lambda x: x+1,a))  #()迭代器对象
print(b)   #[4, 3, 2]

6.例子5

大写转化成小写

a=["ASC","JIA","YHG"]
def to_lower(x):
    return x.lower()
# b=list(map(to_lower,a))  #  第一种调用函数    ()迭代器对象
b=list(map(lambda x:x.lower(),a))   #第二种   匿名函数 直接调用lower方法 不用自己写函数
print(b)                 #['asc', 'jia', 'yhg']

二、filter()

1.作用

  • 过滤序列,和map类型,filter()也接收一个函数和一个序列,和map()不同的是把传入的函数依次作用于每个元素
  • 根据返回值是true 还是False 决定保留还是丢弃该元素,true保留

2.例子

题目1:在一个list中,删掉偶数,只保留奇数

def is_odd(n):
    return n%2==1
l=filter(is_odd,[1,2,4,5,6])
print(list(l))

题目2:filter序列中的空字符串删掉

普通实现

普通实现:''  None 都代表false
a=["A","B",None,"C",'']
b=None
if b:    #true就会执行下一步
    print("b")  #不会输出 none是false

filter实现

filter实现
'  '是空字符串 但是有内容   是true  也会打印
strip()可以过滤掉字符两边的空格  就可以解决这个问题 就不会打印了
def not_empty(s):
    return s and s.strip()
l=filter(not_empty,["A","B",None,"C",'  ',''])
print(list(l))   #['A', 'B', 'C']

三、reduce()

1.作用

  • 把一个函数作用在一个序列[x1,x2,x3,x4,x5]上,这个函数必须接收两个参数 reduce把结果继续和序列的下一个元素做累积计算

2.例子

问题1:对一个序列求和

普通实现

from functools import reduce
a=[1,2,3,4,5,6,7,8]
sum=0
for i in a:
    sum+=i
print(sum)

reduce实现

from functools import reduce
a=[1,2,3,4,5,6,7,8]
def add(x,y):
    return x+y
sum=reduce(add,a)
print(sum)

问题2:如果想把序列[1,3,5,7,9]变成整数13579,将列表中的每个元素乘以10后加上后一个元素

from functools import reduce
def fn(x,y):
    return x*10+y
a=reduce(fn,[1,3,5,7,9])
print(a)

四、zip()

1.作用

  • 两个序列作用为一个序列

2.例子

例子1:打印元组

 for item in zip(['a','b','c'],(1,2,3)):
     print(item)
-----------------------
结果
('a', 1)
('b', 2)
('c', 3)

例子2:打印字典

iter=dict(zip(['a','b','c'],(1,2,3)))
print(iter)
---------------------------------
结果
{'a': 1, 'b': 2, 'c': 3}

五、enumerate()

1.作用

作用于序列中的每一个元素 返回一个包含元素下标和元素本身的元组

2.例子

for item in enumerate('abcdefg',2):
    print(item)
----------------------------------
打印结果:元素都会打印 但是排序数字会从指定数字开始
(2, 'a')
(3, 'b')
(4, 'c')
(5, 'd')
(6, 'e')
(7, 'f')
(8, 'g')

六、sorted

1.作用

  • 通常的排序核心是比较两个数字的大小
  • 如果是字符串,通常规定:对于两个元素x和y,如果认为x<y,返回-1 x==y,返回0,x>y,返回1,这样可以通过结果直接排序
  • python中内置函数:sorted()就可以对list进行排序
  • 默认升序,reverse=True 降序

2.例子

例子1:数字排序

sorter1=sorted([1,3,6,-20,34],reverse=True)
print(sorter1)

例子2:字符串排序

sorter2=sorted(['abc','jiajia','佳佳','ABC','123'])
print(sorter2)

例子3:绝对值大小排序

  • sorted是高阶函数,还可以接收一个key函数来实现自定义的排序
  • #数值列表:按照绝对值的大小进行排序
sorter3=sorted([-20,-90,40,10,16],key=abs)
print(sorter3)   #[10, 16, -20, 40, -90]  绝对值升序

例子4:字符串忽略大小写排序

sorter4=sorted(['abc','jiajia','佳佳','ABC','123'],key=str.lower)
print(sorter4)

例子5:元组排序

lst=[('david',90),('cc',80),('xiaoniu',85)]
lst1=sorted(lst,key=lambda x:x[1])
print(lst1)

总结

本文介绍的一些python内置函数,一定要动手敲一遍,知道是什么含义,理解其用法即可,不必死记硬背,用到的时候知道有这个函数即可。

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳佳不爱上班

送你一朵小红花,生活不必太焦虑

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值