常见内置函数


常见内置函数

一、重要内置函数

1、map()——映射

map函数的功能就是映射,我们可以用匿名函数来举个例子:

l1 = [1, 2, 3, 4, 5]
# 假设我们要所有的l1中的数据值+1
a = map(lambda i:i+1,l1)
print(list(a))

如果我们直接print(a),我们得到结果时map函数的相关代码,但是当我们用list方法把a转换成列表之后打印就可以看到转换后的结果

2、max()和min()

max()和min()的作用就是取一组数据值中最大和最小的值,在字典中需要我们手动标出值,否则的话就会根据ascii码排字母大小(A-Z——65-90,a-z——97-122)来获得返回值。下面我们用max来举例:

	l1 = [11, 22, 33, 44]
 	res = max(l1)
    # 这里就不需要别的操作就可以直接获得最大值
	d1 = {
    'zj': 100,
    'jason': 8888,
    'berk': 99999999,
    'oscar': 1
	}
    def func(a):
        return d1.get(a)
    res = max(d1, key=lambda k: d1.get(k))
    # 这里的第一个参数是设置要查找的数据组,然后key的作用是对每个数据组中的元素先进行key绑定的函数进行操作在进行比较,但是最后的返回结果还是用函数操作前的对象。
    # 使用max方法的时候也可以用匿名函数,如果感觉自己理解不了就可以先定义函数后调用
    # res = max(d1, key=func)
    print(res)

3、reduce()

python2中reduce是内置方法可以直接调用,但是在python3中reduce已经不能算内置函数了,他由于使用频率少已经变成了一个模块,作用是统计。

使用前需要先引入模块

from functools import reduce
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    res = reduce(lambda a, b: a * b, l1)
    print(res)

这里的括号内参数功能跟max相似,第一个位置是放函数,用于定义统计的方式,第二个位置放列表之类的数据值,这里我们用了匿名函数定义统计方式,如果我们匿名函数的功能是a+b,得到的就是l1中所有值相加的结果,如果匿名函数的功能时a*b,得到的结果就是所有的列表中的值相乘。这里我们不需要想的很细致,当python解释器很智能就可以,会根据对应的条件计算。

4、zip

说白了就是压缩几组数据值。说细了就是将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,一般会用list或dict方法输出为对应的类型,当对象为多个的时候,会根据数据值最少的那个参数为输出的个数,多余的部分就不会输出了。

# zip
l1 = [11, 22, 33, 44, 55]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4, 5]
res = zip(l1, l2, l3)
print(list(res))
# [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3), (44, 'jerry', 4), (55, 'tony', 5)]
l1 = [11, 22, 33]
l2 = ['jason', 'kevin', 'oscar', 'jerry', 'tony']
l3 = [1, 2, 3, 4]
res = zip(l1, l2, l3)
print(list(res))
# [(11, 'jason', 1), (22, 'kevin', 2), (33, 'oscar', 3)]

当我们使用zip方法压缩后还可以解压,使用方法为:zip(*+变量名):

aa = [(1, 2), (2, 3), (3, 4)]
a, b = zip(*aa)
print(a)
print(b)
(1, 2, 3)
(2, 3, 4)

5、filter

filter函数是筛选的意思:此函数会将可迭代对象中的每一位元素作为参数传递到func中,如果结果为True,则将此元素添加到结果列表中,filter()返回的结果是一个的新列表。

表现形式:filter(func,iterable)

其中func为函数名,可为lambda匿名函数,iterable为可迭代对象。

# filter
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
res = filter(lambda x: x > 40, l1)
print(list(res))
# [44, 55, 66, 77, 88]

这里的filter函数在匿名函数的作用下达成的功能是判断列表l1中的值,如果根据匿名函数的条件得出这个数据值大于40就把他记录到结果中用res输出结果。

6、sorted

sort方法大家一定很眼熟,他是列表的升序排列,到了内置函数sorted中也是一样的作用。

表现形式:sorted(iterable, key=None, reverse=False)

  • iterable – 可迭代对象。
  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。(说白了就是弄个函数加了条件)
  • reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
# sorted
l1 = [21, 12, 53, 64, 76, 32, 11, 22]
res = sorted(l1)
print(res)  # 默认升序
# [11, 12, 21, 22, 32, 53, 64, 76]

下面是key加入函数的例子:

b = {1: 'ab', 2: 'degg', 4: 'ght', 9: 'd'}

res1 = sorted(b.items(), key=lambda i: i[0])  # 指定按字典里面的键排序
print(res1)

[(1, 'ab'), (2, 'degg'), (4, 'ght'), (9, 'd')]

res2 = sorted(b.items(), key=lambda i: len(i[1]))  # 指定按字典里的value长度排序,默认从小到大
print(res2)

[(9, 'd'), (1, 'ab'), (4, 'ght'), (2, 'degg')]

res3 = sorted(b.items(), key=lambda i: len(i[1]), reverse=True)  # 指定按字典里的value长度排序,同时进行翻转,即按value的长度从大到小排列
print(res3)

[(2, 'degg'), (4, 'ght'), (1, 'ab'), (9, 'd')]

二、常见内置函数(了解)

1、abs

abs的作用很好理解,就是把数值变成绝对值,也就是变成正数。

print(abs(-100))
print(abs(100))
# 100
# 100

2、all

对条件进行判断,如果给定的所有条件都对就返回True,否则就返回False。可以和and的作用放一起记忆。

3、any

对条件进行判断,如果给定的条件里面有一个对就返回True,都错的时候返回False。可以和or的作用放一起记忆。

4、bytes

相当与encode的作用,对给定的数据值进行编码,会转换成bytes(二进制类型)

s1 = '今天周五 内容也很简单'
print(s1.encode('utf8'))
print(bytes(s1, 'utf8'))
# b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94 \xe5\x86\x85\xe5\xae\xb9\xe4\xb9\x9f\xe5\xbe\x88\xe7\xae\x80\xe5\x8d\x95'
# b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x91\xa8\xe4\xba\x94 \xe5\x86\x85\xe5\xae\xb9\xe4\xb9\x9f\xe5\xbe\x88\xe7\xae\x80\xe5\x8d\x95'

5、bin、oct、hex、int

这些是之前说过的一些进制转换的函数,分别是:二进制八进制十六进制和十进制。

6、callable

用于判断这个变量名加了括号是不是就能调用了,返回的结果时布尔值。

name = 'jason'
def index():
    print('from index')
print(callable(name))  # False
print(callable(index))  # True

7、chr、ord

根据ASCII对应的数值或是根据字符对应的数据值返回结果,chr是根据数值返回字符,ord是根据字符返回数据值。

print(chr(65))  # A
print(ord('A'))  # 65

8、dir

我们可以通过这个函数查看括号内的对象能调用的方法或函数

print(dir('hello'))
# ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

9、divmod

对数值进行整除,并且可以获得余数。

res = divmod(100, 2)
print(res)  # (50, 0)
res = divmod(100, 3)
print(res)   # (33, 1)

前面的结果时整除的结果,后面是余数。

10、enumerate

用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般结合for循环使用(可以人为指定下表开始的数据值):

print(list(enumerate(["a", "b", "c"])))

[(0, 'a'), (1, 'b'), (2, 'c')]

11、eval和exec

两种函数都是一个作用:把字符串内的代码运行。

其中eval只能运行一些简单的代码

exec可以运行复杂一些的代码,比如开个for循环

s1 = 'print("哈哈哈")'
eval(s1)
exec(s1)
s2 = 'for i in range(100):print(i)'
eval(s2)  # 只能识别简单的python代码 具有逻辑性的都不行,这里会报错
exec(s2)  # 可以识别具有一定逻辑性的python代码

12、hash

使用哈希算法对数据值进行加密

print(hash('jason'))
# 6504587676088172780

13、id、input、isinstance

id

返回对象的唯一标识符,标识符是一个整数(返回对象的内存地址)

input

用于接收外界输入的信息

isinstance

判断一个对象是否是一个已知的类型,类似 type()

class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

14、open

用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写,在之前问文本编辑知识点可以找到详细操作方法,这里就举个例子:

with open() as f1:
    pass
f2 = open()

15、pow

返回 xy(x的y次方) 的值

pow(x, y[, z])

16、range

之前讲for循环的时候介绍过,作用是生成一个工厂,生成数据,python2和python3中的作用有所区别python2中的xrange和python3的range作用一样。

17、round

对数值进行四舍五入,但是不太准确,可能是五舍六入。

18、sum

sum(list) : 求取list元素的和


posted @   致丶幻  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
  1. 1 So Far Away (Acoustic) Adam Christopher
  2. 2 雪 Distance Capper&罗言RollFlash
  3. 3 CollapsingWorld
  4. 4 Call You Tonight Johnta Austin
雪 Distance - Capper&罗言RollFlash
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

词:Capper/罗言

曲:Capper/罗言

编曲:IOF

混音:刘城函

母带:张步若@RSS

可怜像扑火飞蛾

任凭无用的勇敢将我淹没

你充满防备的样子不像我

会不会太久

久到这结果

明明我想要却不敢对你说

我好想放手

却幻想太多

悲叹你不是世上另一个我

我愿把胸膛解剖

公开脆弱的结构

有在跳动的血肉

别再只丢我骨头

心甘情愿囚禁在深渊

舔舐着伤口和刀尖

可是雪 飘进双眼

看不见你桥牌的谎言

心甘情愿囚禁在深渊

烧一捧雪花做硝烟

为什么抿下嘴唇尝起来像铁锈

我怕这沼泽死水就要将我淹没

快要变成玩偶

可以随意玩弄

只要和你联手

我愿把胸膛解剖

公开脆弱的结构

有在跳动的血肉

别再只丢我骨头

在这么冷的天

再靠近我一点

可是雪 飘进双眼

看不见你桥牌的谎言

心甘情愿囚禁在深渊

心甘情愿囚禁在深渊

烧一捧雪花做硝烟

点击右上角即可分享
微信分享提示