Python3 常用的几个内置方法
max()/min()
- 传入一个参数 (可迭代对象), 返回这个可迭代对象中最大的元素
- 可以设置default关键字参数, 当这个可迭代对象为空时, 返回default的值
- 传入多个参数, 返回这些参数中最大的参数
- 多个参数必须是同类型的
- 两种方法都可以设置key关键字参数(传入函数)
"""
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The default keyword-only argument specifies an object to return if the provided iterable is empty.
With two or more arguments, return the largest argument.
"""
res = max([1, 2, 3], default=0)
print(res) # 3
# 传入了一个空的可迭代的对象参数, 返回默认值0
res = max([], default=0)
print(res) # 0
lis = [1, 2, 3]
def func(num):
return -num
# res = max(lis, key=func)
res = max(lis, key=lambda num: -num)
print(res) # 1
"""
key参数接收的是一个函数对象
max函数会将lis里面的元素依次传入转换函数
哪个元素经过转换函数得到的值最大, 就返回该元素
"""
filter() 过滤
- 第一个参数(形参), 要么是func, 要么是None, 不传会报错
- 第二个参数是可迭代对象
- 返回一个filter obj (iterator)
- filter()方法会过滤掉:
- 本身布尔值为False的元素
- 经过函数处理后, 返回值的布尔值为False的元素
"""
filter(function or None, iterable) --> filter object
Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true.
"""
"""
需要传入两个参数, 第一个是函数或者None, 第二个是可迭代对象
返回的是一个filter obj(迭代器)
如果第一个参数时None, 则返回的迭代器中只包含可迭代对象中为True的元素
如果第一参数是一个函数, 可迭代对象中元素传入该函数, 结果为True, 则filter方法返回的迭代器就会包含此元素
"""
lis = [0, 1, 2, 3]
filter_obj = filter(None, lis)
print(list(filter_obj)) # [1, 2, 3]
def func(num):
if num > 1:
return 0
filter_obj = filter(func, lis)
print(list(filter_obj)) # []
filter_obj = filter(lambda num: num > 1, lis)
print(list(filter_obj)) # [2, 3]
map() 映射
- 第一个参数必须是函数
- 后面可传入一个或多个可迭代对象参数
- 可迭代对象参数的个数, 必须和函数的参数个数相同
- 多个可迭代对象包含的元素个数不一致, 则以元素个数最少的那个为准
- 返回一个map obj (iterator)
"""
map(func, *iterables) --> map object
Make an iterator that computes the function using arguments from
each of the iterables. Stops when the shortest iterable is exhausted.
"""
def func1(x):
return x + 1
"""
参数1: 函数, 参数2:可迭代对象
1.可迭代对象的中的元素依次传入函数得到返回值res
2.调用map函数最终会得到一个迭代器对象iterator
3. 这个iterator就包含了res
"""
map_obj = map(func1, [1, 2, 3])
print(list(map_obj)) # [2, 3, 4]
def func2(x, y):
return x + y
"""
传入的可迭代对象参数个数与函数所需要的参数个数是相等的
取值个数以最短的为准
"""
map_obj = map(func2, [1, 2, 3], [1, 2, 3, 4])
print(list(map_obj)) # [2, 4, 6]
sorted筛选
- 第一个参数是可迭代对象
- 第二参数是key, 第三个参数是reverse, 这两个参数可不传
"""
sorted(iterable, key, reverse) --> list
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the reverse flag can be set to request the result in descending order.
"""
lis = [3, 2, 4, 5, 1]
# 1.只传入可迭代对象参数
res = sorted(lis)
print(res) # [1, 2, 3, 4, 5]
def func(x):
return -x
"""
2.当传入函数时, 可迭代对象元素排序的依据是他们传入函数得到结果
注意: 还是对原来的元素进行排序, 而不是对元素传入函数得到的结果, 只是以这个结果为排序的依据
"""
res = sorted(lis, key=func)
print(res) # [5, 4, 3, 2, 1]
reduce()减少
- 第一个参数是函数
- 该函数必须是有且只有两个参数
- 第二个参数是序列
- initial是初始值, 可以当做序列的第一个元素
- 这个reduce指的是不断减少的是序列中的元素个数, 直到序列只剩下一个元素, 返回该元素
from functools import reduce
"""
reduce(function, sequence[, initial]) -> value
Apply a function of two arguments cumulatively to the items of a sequence, from left to right, so as to reduce the sequence to a single value.
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5).
If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty.
"""
lis = [1, 2, 3, 4, 5]
res1 = reduce(lambda x, y: x + y, lis)
print(res1) # 15
res2 = reduce(lambda x, y: x + y, lis, 1)
print(res2) # 16
Python3 常用的几个内置方法的更多相关文章
- [Python3] 015 冰冻集合的内置方法
目录 0. 前言 英文名 元素要求 使用限制 返回 方法数量 1. 如何查看 frozenset() 的内置方法 2. 少废话,上例子 2.1 copy() 2.2 difference() 2.3 ...
- Day07 数据类型(列表,元组,字典,集合)常用操作和内置方法
数据类型 列表list: 用途:记录多个值(同种属性) 定义方式:[]用逗号分隔开多个任意类型的值 list()造出来的是列表,参数是可迭代对像,也就是可以使用for循环的对像 传入字典,出来的列表元 ...
- Day06for循环和字符串的内置方法
Day06 1.for循环(迭代器循环) while循环 条件循环,循环是否结束取决于条件的真假 for循环,迭代器循环,多用于循环取值,循环是否结束取决于被循环数据的元素个数 2.range(1,5 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- s14 第4天 关于python3.0编码 函数式编程 装饰器 列表生成式 生成器 内置方法
python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf ...
- python字符串常用内置方法
python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...
- Python 数据类型常用的内置方法(三)
目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...
- python3.x Day4 内置方法,装饰器,生成器,迭代器
内置方法,就是python3提供的各种函数,可以认为是关键字,帮助进行一些列的牛x运算. abs()#取绝对值 all([])#可迭代对象中的所有元素都为True 则为True,只要至少一个为Fals ...
- python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05
迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...
随机推荐
- Matlab 文件格式化/Matlab Source File Formator
由于需要使用到别人编写的Matlab代码文件,但是呢不同的人有不同的风格,有的写得就比较糟糕了. 为了更好地理解代码的内容,一个比较美观的代码会让人身心愉悦. 但是在网上并没有找到一个比较好的实现,此 ...
- 领扣(LeetCode)用队列实现栈 个人题解
使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作 ...
- opencv 6 图像轮廓与图像分割修复 2 使用多边形将轮廓包围
使用多边形将轮廓包围 返回外部矩阵边界(boundingRect()函数) 寻找最小包围矩形(minAreaRect()函数) 寻找最小包围圆形(minEnclosingCircle函数) 用椭圆拟合 ...
- Mint UI Example的运行
Mint -UI是新推出的移动端UI框架 官网 不过官网上的文档例子不是很全面. 建议下载他们提供的example来学习. 1.examplle源码下载地址 2.打开项目,我这里使用webstorm, ...
- 20191107-5 beta week 2/2 Scrum立会报告+燃尽图 04
此作业的要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9957 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...
- CentOS 7下配置ISO镜像文件为本地yum源
环境限制外网怎么办?离线环境怎么解决依赖?yum源配起来,可以解决大部分包的安装^_^ 环境: 虚拟机:VMware Workstation Pro 12.x Linux系统版本:CentOS-7-x ...
- 【Flink】Flink基础之WordCount实例(Java与Scala版本)
简述 WordCount(单词计数)作为大数据体系的标准示例,一直是入门的经典案例,下面用java和scala实现Flink的WordCount代码: 采用IDEA + Maven + Flink 环 ...
- 【NOIP2017】【Luogu P3956】【SPFA】棋盘
Luogu P3956 本题是一道简单的SPFA 具体看程序 #include<iostream> #include<cstdio> using namespace std; ...
- R 语言学习笔记(1)——R 工作空间与输入输出
什么是工作空间? 工作空间(workspace)就是当前 R 的工作环境,它储存着所有用户定义的对象(objectives)包括了向量.矩阵.函数.数据框.列表等. 处理 R 文件的工作流程 #设置当 ...
- HTML 5 中的textarea标签
HTML 5 中的textarea标签 定义和用法 定义一个文本区域 (text-area) (一个多行的文本输入区域).用户可在此文本区域中写文本.在一个文本区中,您可输入无限数量的文本.文本区中的 ...