python笔记(五):内置函数

本文详细介绍了Python的内置函数,包括map、filter、reduce的使用方法,map用于处理序列元素,filter用于筛选元素,reduce用于合并序列。还总结了其余内置函数,如abs、all、any等,涵盖取绝对值、进制转换、布尔判断等多种功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python之内置函数

map

map(处理逻辑,可遍历的对象) 处理序列中的每个元素,元素个数及位置与原来一样

1

2

|

v ``= "ALEX"

print``(``list``(``map``(``lambda x: x.lower(), v))) ``# 结果为 ['a', 'l', 'e', 'x']

—|—

更节省代码。

1

2

3

4

5

6

7

8

9

|

a ``= []

def jianer(array):

``for i ``in array:

``a.append(i.lower())

``print``(a)

jianer(v)

结果

[``'a'``, ``'l'``, ``'e'``, ``'x'``]

—|—

filter

filter(处理逻辑,可遍历对象) 遍历序列中的每个元素,判断每个元素的布尔值为True则保留元素

1

2

3

4

5

6

7

8

9

|

movie_people ``= [``'alex_sb'``, ``'wupeiqi_sb'``, ``'linhaifeng'``, ``'yuanhao_sb'``]

def filter_test(array):

``ret ``= []

``for i ``in array:

``if not i.endswith(``'sb'``):

``ret.append(i)

``return ret

res ``= filter_test(movie_people)

print``(res)<br>结果<br>[``'linhaifeng'``]

—|—

1

2

|

movie_people``=``[``'alex_sb'``,``'wupeiqi_sb'``,``'linhaifeng'``,``'yuanhao_sb'``]

print``(``list``(``filter``(``lambda n: n.endswith(``'sb'``), movie_people))) ``# 判断元素endswith的值为True,为True则保留元素<br>结果<br>['alex_sb', 'wupeiqi_sb', 'yuanhao_sb']<br>

—|—

reduce

from funtools import reduce

reduce(函数,序列,默认空参数) 处理一个序列,然后把序列进行合并操作

铺垫例子

1

2

3

4

5

|

from functools ``import reduce`` ``# reduce 用reduce函数要定义这句话

num_l ``= [``1``, ``2``, ``3``, ``100``]

print``(``reduce``(``lambda x, y: x ``+ y, num_l, ``1``))

print``(``reduce``(``lambda x, y: x ``+ y, num_l))

—|—

其余内置函数总结

用法如下(缺少的待补充)

abs 取绝对值 参数可以是:负数、正数、浮点数或者长整形;只取绝对值,但是不会取整

print``(``abs``(``-``1``))

print``(``abs``(``1``))

结果

1

1


all 判断所有里面的元素是否为真值,如果有单个为空则返回True。参数为可迭代对象

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

|

>>> ``all``([``'a'``, ``'b'``, ``'c'``, ``'d'``]) ``#列表list,元素都不为空或0

True

>>> ``all``([``'a'``, ``'b'``, '``', '``d']) ``#列表list,存在一个为空的元素

False

>>> ``all``([``0``, ``1``,``2``, ``3``]) ``#列表list,存在一个为0的元素

False

>>> ``all``((``'a'``, ``'b'``, ``'c'``, ``'d'``)) ``#元组tuple,元素都不为空或0

True

>>> ``all``((``'a'``, ``'b'``, '``', '``d')) ``#元组tuple,存在一个为空的元素

False

>>> ``all``((``0``, ``1``,``2``, ``3``)) ``#元组tuple,存在一个为0的元素

False

>>> ``all``([]) ``# 空列表

True

>>> ``all``(()) ``# 空元组

True

—|—

any 有一个为真则为真,返回True

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

|

>>> ``any``([``'a'``, ``'b'``, ``'c'``, ``'d'``]) ``#列表list,元素都不为空或0

True

>>> ``any``([``'a'``, ``'b'``, '``', '``d']) ``#列表list,存在一个为空的元素

True

>>> ``any``([``0``, '``', False]) #列表list,元素全为0,'``',false

False

>>> ``any``((``'a'``, ``'b'``, ``'c'``, ``'d'``)) ``#元组tuple,元素都不为空或0

True

>>> ``any``((``'a'``, ``'b'``, '``', '``d')) ``#元组tuple,存在一个为空的元素

True

>>> ``any``((``0``, '``', False)) #元组tuple,元素全为0,'``',false

False

>>> ``any``([]) ``# 空列表

False

>>> ``any``(()) ``# 空元组

False

—|—

bin 十进制转二进制

1

2

3

|

print``(``bin``(``5``))

0b101 # 0b表示二进制

—|—

hex 十进制转十六进制

1

2

3

|

print``(``hex``(``74``))

0x4a``

—|—

oct 十进制转八进制

1

2

3

|

print``(``oct``(``18``))

0o22

—|—

bool 判断布尔值

bytes 编码 ascll码不能编译中文,会报错

1

2

3

4

5

6

|

name ``= '你好'

print``(bytes(name,encoding``=``'utf8'``)) ``# 手动把字符串编码,转为二进制

print``(bytes(name,encoding``=``'utf8'``).decode(``'utf8'``)) ``# 需要把字符串进行编码,再解码(用什么方式编码就用什么解码,decode)

b``'\xe4\xbd\xa0\xe5\xa5\xbd'

你好

—|—

dir 显示函数内置属性和方法

1

2

3

|

print``(``dir``(``dict``))

[``'__class__'``, ``'__contains__'``, ``'__delattr__'``, ``'__delitem__'``, ``'__dir__'``, ``'__doc__'``, ``'__eq__'``, ``'__format__'``, ``'__ge__'``, ``'__getattribute__'``, ``'__getitem__'``, ``'__gt__'``, ``'__hash__'``, ``'__init__'``, ``'__iter__'``, ``'__le__'``, ``'__len__'``, ``'__lt__'``, ``'__ne__'``, ``'__new__'``, ``'__reduce__'``, ``'__reduce_ex__'``, ``'__repr__'``, ``'__setattr__'``, ``'__setitem__'``, ``'__sizeof__'``, ``'__str__'``, ``'__subclasshook__'``, ``'clear'``, ``'copy'``, ``'fromkeys'``, ``'get'``, ``'items'``, ``'keys'``, ``'pop'``, ``'popitem'``, ``'setdefault'``, ``'update'``, ``'values'``]

—|—

divmod 得到商和余数(可用作分页用)

1

2

3

|

print``(``divmod``(``10``,``3``))

(``3``,``1``)

—|—

eval 1、提取字符串的数据结构 2、作字符串中的数据运算

1

2

3

4

5

6

|

dic``=``{``'name'``:``'alex'``} ``#字典类型转成字符串

dic_str``=``str``(dic)

print``(dic_str)

d1``=``eval``(dic_str) ``#eval:把字符串中的数据结构给提取出来

print``(d1)

—|—

express = "1+2*(3/3-1)-2"
print(eval(express))

输出
-1,0               第二种数据运算

hash 可hash的数据类型即不可变数据类型,不可hash的数据类型即可变数据类型

hash的作用:从下载的软件判断是否被改变,通过对比hash值,便知道

help 查看函数的用法的详细信息

isinstance 判断类型

1

2

3

4

5

6

7

8

9

10

11

|

print``(``isinstance``(``1``,``int``)) ``#判断是不是int类型

print``(``isinstance``(``'abc'``,``str``)) ``#判断字符串

print``(``isinstance``([],``list``)) ``#判断列表

print``(``isinstance``({},``dict``)) ``#判断字典

print``(``isinstance``({``1``,``2``},``set``)) ``#判断集合

True

True

True

True

True

—|—

locals

复制代码

def test():
    age = "18"
    print(globals())    # 输出全局变量
    print(locals())     # 输出上一层的变量

test()


{'test': <function test at 0x000001C869BB9598>, '__file__': 'C:/Users/lenovo/PycharmProjects/untitled/pythons3/内置函数.py', '__spec__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C869B56CF8>, '__builtins__': <module 'builtins' (built-in)>, '__package__': None, '__cached__': None, '__name__': '__main__', '__doc__': None}
{'age': '18'}

复制代码

max(最大)和min(最小) 遍历比较,不同类型间不能比较

list = [99,55,23,11,68]
print(max(list))
print(min(list))

99
11


age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
print(max(age_dic.values()))        # 取出最大年龄
print(max(age_dic))                 # 默认比较key

100
zsc_age

复制代码

 1 age_max = [
 2         {"name":"alex","age":25},
 3         {"name":"tom","age":30},
 4         {"name":"tony","age":55}
 5 ]
 6 li = []
 7 for item in age_max:
 8     li.append(item["age"])
 9 print(li)
10 age = {"alex":25,"tom":30,"tony":55}
11 print(max(li))
12 max(age_max,key=lambda dic:dic["age"])
13 print(max(age_max,key=lambda x:x["age"]))
14 
15 [25, 30, 55]
16 55
17 {'name': 'tony', 'age': 55}

复制代码

zip 一一对应分配

复制代码

print(list(zip(('a', 'n', 'c'), (1, 2, 3))))
print(list(zip(('a', 'n', 'c'), (1, 2, 3, 4))))
print(list(zip(('a', 'n', 'c', 'd'), (1, 2, 3))))

[('a', 1), ('n', 2), ('c', 3)]
[('a', 1), ('n', 2), ('c', 3)]
[('a', 1), ('n', 2), ('c', 3)]

复制代码

复制代码

p={'name':'alex','age':18,'gender':'none'}
print(list(zip(p.keys(),p.values())))
print(list(p.keys()))    #取keys
print(list(p.values()))  #values
print(list(zip(['a','b'],'12345')))   # zip传俩个参数,都是序列。便可一一对应

[('age', 18), ('gender', 'none'), ('name', 'alex')]
['age', 'gender', 'name']
[18, 'none', 'alex']
[('a', '1'), ('b', '2')]

复制代码

max和zip结合使用

age = {"alex":25,"tom":30,"tony":55}
print(list(zip(age.values(),age.keys())))       # 一一对应
print(max(zip(age.values(),age.keys())))        # 一一对应取最大值

[(55, 'tony'), (25, 'alex'), (30, 'tom')]
(55, 'tony')

复制代码

dic={'age1':18,'age2':10}
print(max(dic))           # 比较的是key
print(max(dic.values()))  # 比较的是值,但是不知道对应的哪个key
print(max(zip(dic.values(),dic.keys()))) # 通过zip,便可以获取到值最大,对应的是哪个key

age2
18
(18, 'age1')

复制代码

pow 几的几次方

print(pow(3,3))
print(pow(2,3,2))

27          # 3**3   3的3次方
0           # 2**3%2 2的3次方取余

reversed 反转

li = [1,2,3,4]
print(list(reversed(li)))     # 反转

[4, 3, 2, 1]      

round 四舍五入

print(round(4.3))

4

set 变集合,记得集合的特性

print(set("hello"))

{'o', 'l', 'h', 'e'}

slice 切片,可以指定步长

复制代码

l='hello'
s1=slice(3,5)     # 切片 取3到5的元素
s2=slice(1,4,2)  # 切片,指定步长为2
print(l[3:5])

print(l[s1])         # 切片
print(l[s2])    

print(s2.start)    # 开始
print(s2.stop)    # 结束
print(s2.step)    # 步长

lo
lo
el
1
4
2

复制代码

sorted 排序(排序本质上就是在比较大小,不同类型间不能比较)

l=[3,2,1,5,7]
l1=[3,2,'a',1,5,7]
print(sorted(l))       # 排序
# print(sorted(l1))    # 会报错

[1, 2, 3, 5, 7]

复制代码

people=[
     {'name':'alex','age':1000},
     {'name':'wupei','age':10000},
     {'name':'yuanhao','age':9000},
     {'name':'linhaifeng','age':18},
 ]
print(sorted(people,key=lambda dic:dic['age']))    # 按年龄进行排序

[{'name': 'linhaifeng', 'age': 18}, {'name': 'alex', 'age': 1000}, {'name': 'yuanhao', 'age': 9000}, {'name': 'wupei', 'age': 10000}]

复制代码

复制代码

name_dic={
     'abyuanhao': 11900,
     'alex':1200,
     'wupei':300,
}
print(sorted(name_dic))   #按key排序

print(sorted(name_dic,key=lambda key:name_dic[key]))    # 取出字典的values排序

print(sorted(zip(name_dic.values(),name_dic.keys())))   # 按价格从低到高排序,并一一对应

['abyuanhao', 'alex', 'wupei']
['wupei', 'alex', 'abyuanhao']
[(300, 'wupei'), (1200, 'alex'), (11900, 'abyuanhao')]

复制代码

sum 求和

1 li = [1,2,3,4]
2 print(sum(li))
3 print(sum(range(101)))
4 
5 10
6 5050

type 判断数据类型

复制代码

msg = "123"
if type(msg) is str:
    msg = int(msg)
    res = msg+1
    print(res)

124

复制代码

vars

里面如果没有参数,和locals用法相同

复制代码

def test():
    name = "病毒尖儿"
    print(locals())
    print(vars())
test()

{'name': '病毒尖儿'}
{'name': '病毒尖儿'}

复制代码

如果里面有一个参数,查看某一个方法,并显示成字典的类型

print(vars(int))

内容过多,不再添加,以字典的形式表现

import 导入模块(就是导入一个py文件)

粗略用法,不能导入字符串类型(以后可能会这种需求)

复制代码

 1 # 1、先创建一个test.py的文件
 2         写下一下内容
 3                 def say_hi():
 4                     print("你好,林师傅")
 5 # 如果想在别的地方调用这个模块(这个test.py文件)
 6 
 7 import test
 8 test.say_hi()
 9 
10 结果
11 
12 你好,林师傅

复制代码

import 可以导入有字符串模块儿

粗略用法

复制代码

 1 # 1、先创建一个test.py的文件
 2         写下一下内容
 3                 def say_hi():
 4                     print("你好,林师傅")
 5 # 如果想在别的地方调用这个模块(这个test.py文件)
 6 
 7 module_name='test'
 8 m=__import__(module_name)   #有字符串的模块
 9 m.say_hi()
10 
11 结果
12 
13 你好,林师傅

复制代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值