day13-07 内置函数

家住魔仙堡 提交于 2019-12-05 00:17:08

TOC

一、什么是内置函数

python解释中内置的函数

  • range()
  • print()
  • len()
  • max()
  • min()
  • sorted()
  • map()
  • filter()
  • ....

二、内置函数的用法

2.1 max()求最大值

max求最大值
max内部会将list1中的元素通过for循环取出每一个值,并且进行判断

语法:max(可迭代对象)

list1 = [1, 3, 5, 65, 6, 7]
print(max(list1))

>>> 65

2.1.1 max()取最大值

获取可迭代对象中最大值

dict1 = {
    'tank': 1000,
    'egon': 500,
    'sean': 200,
    'jason': 500
}

print(max(dict1, key=lambda x: dict1[x]))

2.1.2 min()取最小值

获取可迭代对象中最小值

dict1 = {
    'tank': 1000,
    'egon': 500,
    'sean': 200,
    'jason': 500
}

print(min(dict1, key=lambda x: dict1[x]))

2.1.3 sorted() 排序

对可迭代对象中的数据进行排序

参数:

  • reverse默认为False,升序
  • reverse为True,降序

求工资最低的

dict1 = {
    'tank': 100,
    'egon': 500,
    'sean': 200,
    'jason': 50
}

new_list = sorted(dict1, key=lambda x: dict1[x], reverse=True)
print(new_list)

2.1.4 map()映射

语法:
map(函数地址,可迭代对象) 得到的返回值是一个map对象

map会将可迭代对象中的每一个值进行修改,然后映射一个map对象中,可以再将map对象转成列表/元组(注意:只能转一次,因为它是一个可迭代对象,当你定义第一次列表的时候,就已经的相当于将值取出来了)

name_list = ['engon', 'jason', 'sean', '大饼', 'tank']
map_obj = map(lambda name: name if name == 'tank' else name + '爱吃生蚝', name_list)
print(map_obj)
print(list(map_obj))
print(tuple(map_obj))



>>> <map object at 0x000001B7506E5CC8>
>>> ['engon爱吃生蚝', 'jason爱吃生蚝', 'sean爱吃生蚝', '大饼爱吃生蚝', 'tank']
>>> ()  # 列表已经将值取完了,所以tuple为空
Process finished with exit code 0

2.1.5 reduce() 合并

每次从可迭代对象中获取两个值进行合并

语法

reduce(func, sequence, initial=None)

初始值(initial): 执行reduce函数时,都是从初始值开始合并

# 需要导入functools
# 需求:求1-100的和
# 普通方法
int = 0
for i in range(1, 101):
    int += i

print(int)

# 利用reduce求值
from functools import reduce
res = reduce(lambda x, y: x+y, range(1, 101), 0)
print(res)# 需要导入functools
# 需求:求1-100的和
# 普通方法
int = 0
for i in range(1, 101):
    int += i

print(int)

# 利用reduce求值
from functools import reduce
res = reduce(lambda x, y: x+y, range(1, 101), 0)
print(res)

> 5050


# 初始值为1000
from functools import reduce
res = reduce(lambda x, y: x+y, range(1, 101), 0)
print(res)

> 6050

2.1.6 filter() 过滤

filter会将函数中返回的结果为True 对应 的参数值 “过滤出来”

# 将后缀为_dsb的名字 “过滤出来”
name_list = ['egon_dsb', 'jason_dsb', 'sean_dsb', '大饼_dsb', 'tank']

res = filter(lambda name: name.endswith('_dsb'), name_list)
print(list(res))
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!