我的编程空间,编程开发者的网络收藏夹
学习永远不晚

10个使用Python必须知道的内置函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

10个使用Python必须知道的内置函数

1. reduce()

reduce() functools 模块下面的一个函数,接收两个参数,一个是函数对象,一个是可迭代对象(比如list), reduce每次会把迭代对象中的下一个元素作用在函数上做累积计算,最后得到一个值。

来看个例子你就明白,创建函数 :


# 创建函数  
def add(a, b):  
    result = a + b  
    print(f"{a} + {b} = {result}")  
    return result  
from functools import reduce  
result = reduce(add, [1, 2, 3, 4])  
print("结果:", result) 


输出:

1 + 2 = 3 
3 + 3 = 6 
6 + 4 = 10 
结果: 10

执行过程:第一次将列表中的前两个数取出来作为函数add的参数,第二次将上一次函数add的返回值与列表的第3个数作为参数,依此类推,最后得到一个值。这就是reduce的作用。有点像万物归一的感觉。

当然,如果只是计算列表中的元素之和,大可不必绕这么大弯子用reduce来处理,直接用 sum 函数就可以解决。


result = sum([1, 2, 3, 4]) 


如果是计算列表中元素的乘积,python并没有内置的函数直接计算,这时候我们可以借用reduce来处理


def mul(a, b):  
    return a * b  
result = reduce(mul, [1, 2, 3, 4])  
print("结果:", result) 


输出:

结果: 24

或者使用 lambda 匿名函数


result = reduce(lambda a, b: a * b, [1, 2, 3, 4]) 


甚至可以直接使用operator模块下的乘法操作符函数


from operator import mul  
result = reduce(mul, [1, 2, 3, 4]) 
print("结果:", result) 


最后你会发现解法其实很多种,不过我们应该记住python之禅里面那句话:

There should be one-- and preferably only one --obvious way to do it.

用最合适的方式去做一件事

2. split()

split 接收一个参数,用于将字符串切割成列表,比如一段英文字符串按照空格切割就可以统计出单词的个数,


words = "python is the best programming language"  
wordswords = words.split(" ")  
print(words) 


输出:

['column1', 'column2', 'column3']

3. enumerate()

enumerate 函数用于迭代列表等可迭代对象,它的使用场景一般出现在你需要获取列表的下标位置时,我们知道直接用for循环去迭代列表时,是拿不到元素下标位置的,而 enumerate 就可以获取,否则你还得自己去定义一个索引变量。


words = ['python', 'is', 'the', 'best', 'programming', 'language']  
index = 0  
for w in words:  
    print(index, w)  
    index += 1  
0 python  
1 is  
2 the  
3 best  
4 programming  
5 language 


使用 enumerate 函数,处理起来就更优雅了


for index, w in enumerate(words):  
    print(index, w)  
0 python  
1 is  
2 the  
3 best  
4 programming  
5 language  

4. map()

map是一个与reduce函数对应的函数,Googlemap/reduce框架的思想其实就是从这两个函数借鉴而来的。map函数用于把一个列表通过函数处理,映射成一个新的列表。例如给列表的每个元素做平方,将列表元素转换成字符串,得到一个新的列表。


result = map(lambda x: str(x), [1, 2, 3, 4])  
print(list(result))  
result = map(lambda x: x * x, [1, 2, 3, 4]))  
print(list(result)) 


输出:

['1', '2', '3', '4'] 
[1, 4, 9, 16]

此外,map 函数还可以接受多个列表参数,使得多个列表合并为一个列表成为可能,例如,将两个列表相同位置的元素相加得到一个新的列表


def merge(x, y):  
    return x + y  
result = map(merge, [1, 2, 3], [3, 2, 1])  
print(list(result)) 


输出:

[4, 4, 4]

5. getattr()

getattr() 返回对象属性对应的值,接受两个参数,第一个是对象,第二个是属性名,这个函数通常用户动态或者某个对象下面的某些属性的值,看例子:


class Foo:  
    def __init__(self):  
        self.a = 10  
foo = Foo()  
a = getattr(foo, "a")  
print(a) 


输出:

10

你可能会问,我直接 foo.a 不就可以获取a属性的值了吗?正常情况是这样没错,如果是你在不知道什么情况下要获取什么属性的值时,这时候getattr就可以派上用场了。初学者可能还体验不到,当你尝试去写些框架级的代码时,你要想起来有这样的函数可以使用就行。

6. slice

slice 是一个切片函数,切片操作你可能使用过,通过切片来获取列表的子集, 例如:


s = [1,2,3,4] 
 
>>> s[1:3]  # 获取列表s中第1到第3之间的元素组成的子列表 


"1:3" 其就是 就是 slice(1:3) 函数的缩写方式,前者就像是语法糖


s = [1, 2, 3, 4]  
print(s[slice(1, 3)]) 


通常实际应用过程中,直接用语法糖的写法就可以,没必要用slice函数进行切片,但是你至少应该知道slice是怎么用的。

7. sorted()

sorted 函数应该日常代码中,算是一个高频函数了,用于将列表等可迭代对象进行排序,它不会改变原列表的顺序,而是返回一个新的列表。默认按照升序排列


nums = [4, 5, 6, 3, 1]  
print(sorted(nums)) 


输出:

[1, 3, 4, 5, 6]

如果想要降序排列,则需要指定第二个参数:reverse=True


nums = [4, 5, 6, 3, 1]  
print(sorted(nums, reverse=True))  # [6, 5, 4, 3, 1] 


sorted 函数的强大之处远不止如此,因为你还可以自定义排序规则,比如参与比较是一个自定义的类Student, 我需要按照Student里面的年龄age进行排序,这时候我们需要自定义排序因子函数


def my_sort_key(s):  
    return s.age  
class Student:  
    def __init__(self, age):  
        self.age = age  
    def __str__(self): 
        return f"Student({self.age})"  
s1 = Student(12)  
s2 = Student(2)  
s3 = Student(30)  
new_list = (sorted([s1, s2, s3], key=my_sort_key))  
for i in new_list:  
    print(i) 


输出:

Student(2) 
Student(12) 
Student(30)

8. format

format 函数曾经字符串格式化最常用的函数,使用也是非常简单,但自从f字符串出现之后,format 的功能逐渐被取代,但是3.6之前还是可以常见到该函数的应用场景。


s = "{} is first name"  
print(s.format("liu")) 


如果需要占位符比较多搞不清次序的话,可以给每个占位符一个名字,这样就不拍对不上位置了


s = "{first_name} is first name"  
print(s.format(first_name="liu")) 

9. join()

join 也是比较常用的一个内置函数,它可以将列表对象用指定的字符作为元素之间的连接,转换为字符串。


words = ['python', 'is', 'the', 'best', 'programming', 'language']  
print(" ".join(words)) # 用空格连接 python is the best programming language 

10. type

type 我认为是python最难理解的一个内置函数了,新手可能以为type就是一个用来查看某个对象的类型是什么,例如:


print(type(10)) # <class 'int'>  
print(type([])) # <class 'list'>  
print(type("s"))#  <class 'str'> 


它的另一个作用是可以用type来创建类,一般情况下,我们都用关键字 class 来定义一个类,而type也可以用来创建类


>>> Person = type("Person", (), {"live":True})  
>>> Person  
<class '__main__.Person'> 


第一个参数 Person是类的名字, 第二个参数用来指定父类是谁, 第三个参数是这个类的类属性有哪些。上面这段代码等价于:


>>> class Person:  
...     live = True  
...  
>>> Person  
<class '__main__.Person'> 


创建Person这类的type函数其实是一个叫“元类”的东西。而关于元类甚至可以话一整篇文章来讲解了,好在我在之前的文章中有介绍过,感兴趣的可以查看一下之前写的一篇叫什么是 Python 元类这篇文章。元类在写一些框架时用的较多,比如你去按sqlalchemy的源码的时候,你会发现有大量使用元类的场景。

到此这篇关于10个使用Python必须知道的内置函数的文章就介绍到这了,更多相关10个Python的内置函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

10个使用Python必须知道的内置函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中你应该知道的一些内置函数

前言 python内置了一些非常巧妙而且强大的内置函数,对初学者来说,一般不怎么用到,我也是用了一段时间python之后才发现,哇还有这么好的函数,这个函数都是经典的而且经过严格测试的,可以一下子省了你原来很多事情,代码不仅简洁易读了很多,
2022-06-04

python 几个常用的内置函数

__init__(self [,args])构造函数是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值简单的调用方法: obj = className(args)__init__是当实例对象创建完成后被调用的,然后设置对象属性的一
2023-01-31

Python必备的8个最常用的内置函数分别是哪些

Python必备的8个最常用的内置函数分别是哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python给我们内置了大量功能函数,官方文档上列出了69个,有些是我们是平时
2023-06-16

Python内置函数 next的具体使用

Python 3中的File对象不支持next()方法。 Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目。 如果给定了默认值,则在迭代器耗尽返回此默认值,否则会引发StopIteratio
2023-01-31

python内置函数anext的具体使用

本文主要介绍了python内置函数anext的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-18

Python内置函数——__import__ 的使用方法

__import__() 函数用于动态加载类和函数 。 如果一个模块经常变化就可以使用 __import__() 来动态载入。语法__import__ 语法:__import__(name[, globals[, locals[, from
2022-06-04

如何使用Python中的内置函数

如何使用Python中的内置函数Python是一种简单易学的编程语言,拥有丰富的内置函数库,这些函数可以帮助我们更高效地编写代码。本文将介绍一些常见的Python内置函数,并提供具体的代码示例,帮助读者更好地理解和使用这些函数。print(
2023-10-22

python中的内置函数怎么使用

Python中的内置函数是可直接使用的函数,不需要先导入任何模块。你可以直接在代码中调用这些函数来完成特定的操作。以下是一些常用的内置函数及其用法示例:1. `print()`:用于打印输出内容到控制台。示例:`print("Hello,
2023-09-07

Python中的内置函数如何使用

这篇文章主要介绍“Python中的内置函数如何使用”,在日常操作中,相信很多人在Python中的内置函数如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中的内置函数如何使用”的疑惑有所帮助!
2023-07-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录