首页 > 编程语言 >python基础(14内置函数介绍)

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

时间:2024-09-02 22:52:06浏览次数:12  
标签:map 内置 14 python list 例子 print 函数

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内置函数,一定要动手敲一遍,知道是什么含义,理解其用法即可,不必死记硬背,用到的时候知道有这个函数即可。

标签:map,内置,14,python,list,例子,print,函数
From: https://blog.csdn.net/m0_55605424/article/details/141696282

相关文章

  • Python中的集合魔法:解锁高效数据处理的秘密
    引言集合是一种不允许重复元素的数据结构,并且其内部元素无序排列。这种特性使得集合在某些场景下表现得极为出色:去重:快速去除列表或数组中的重复项。交集、并集、差集等运算:用于比较两个或多个集合间的关系,非常适用于权限控制、用户管理等领域。性能优势:相较于列表,集合......
  • Python机器学习:基础、算法与实战
    1:《Python机器学习:基础算法与实战》内容简介本书基于 Python 语言,结合实际的数据集,介绍了机器学习算法以及数据分析方法的应用。本书主要包含两部分内容,第一部分为 Python 机器学习入门知识:主要介绍了 Python 基础内容、Numpy与Pandas 库数据操作、Matplotlib 与Seaborn......
  • Python中的函数艺术:解锁高效编程的秘密
    引言在软件开发过程中,重复使用相同的代码段是不可避免的。这不仅增加了代码量,还可能导致维护困难。通过定义函数,我们可以将这些重复代码抽象出来,封装成一个可重用的组件。这样做的好处显而易见:减少了代码冗余、提高了代码的复用性,同时也使得程序结构更加清晰。此外,在团队协作时,良......
  • Python机器学习:基础算法与实战-内容介绍
    1:《Python机器学习:基础算法与实战》内容简介本书基于 Python 语言,结合实际的数据集,介绍了机器学习算法以及数据分析方法的应用。本书主要包含两部分内容,第一部分为 Python 机器学习入门知识:主要介绍了 Python 基础内容、Numpy与Pandas 库数据操作、Matplotlib 与Seaborn......
  • Python 实现行为驱动开发 (BDD) 自动化测试详解
    什么是BDD?行为驱动开发(BDD,Behavior-DrivenDevelopment)是一种软件开发过程,旨在通过鼓励协作和沟通,提高软件质量。BDD的核心理念是用自然语言描述软件的行为,使得业务人员、开发人员和测试人员都能参与其中。BDD是由测试驱动开发(TDD,Test-DrivenDevelopment)演......
  • MacBook Pro M3 安装 Node.js v14 的兼容性
    1、MacBookProM3可以安装Node.jsv14,但需要一些额外的步骤,因为Node.jsv14并没有为ARM64构建的版本。2.解决方法可以通过安装Rosetta来解决这个问题。Rosetta是一个翻译应用程序,允许为Intel芯片(或旧一代Mac)构建的应用程序在AppleSilicon下运行。安装Rosetta......
  • 南沙信奥赛老师解一本通题: 1413:确定进制
    ​题目描述】  【输入】一行,包含三个整数p、q、r。p、q、r的所有位都是数字,并且1≤p、q、r≤1,000,000。【输出】一个整数:即使得p×q=r成立的最小的B。如果没有合适的B,则输出0。【输入样例】6942【输出样例】13 #include<bits/stdc++.h>usingnam......
  • 内存管理-14-内核文档翻译-2-memory-allocation.rst 和 gfp_mask-from-fs-io.rst
    一、memory-allocation.rstmsm-5.4/Documentation/core-api/memory-allocation.rst翻译:========================内存分配指南==========================Linux提供了各种用于内存分配的API。您可以使用`kmalloc()`或`kmem_cache_alloc()`系列分配小块,使用`vmalloc()`......
  • 2024.9.2 Python,用栈写每日温度,等差数列划分,子串所有可能性,等差数列划分,深度优先搜索
    1.每日温度给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。示例1:输入:temperatures=[73,74,75,71,69,72,76,73]输出:[1,1,4,2,......
  • 电力系统机组组合优化调度(IEEE14节点、IEEE30节点、IEEE118节点)(Matlab代码实现)
     ......