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 常用的几个内置方法的更多相关文章

  1. [Python3] 015 冰冻集合的内置方法

    目录 0. 前言 英文名 元素要求 使用限制 返回 方法数量 1. 如何查看 frozenset() 的内置方法 2. 少废话,上例子 2.1 copy() 2.2 difference() 2.3 ...

  2. Day07 数据类型(列表,元组,字典,集合)常用操作和内置方法

    数据类型 列表list: 用途:记录多个值(同种属性) 定义方式:[]用逗号分隔开多个任意类型的值 list()造出来的是列表,参数是可迭代对像,也就是可以使用for循环的对像 传入字典,出来的列表元 ...

  3. Day06for循环和字符串的内置方法

    Day06 1.for循环(迭代器循环) while循环 条件循环,循环是否结束取决于条件的真假 for循环,迭代器循环,多用于循环取值,循环是否结束取决于被循环数据的元素个数 2.range(1,5 ...

  4. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  5. s14 第4天 关于python3.0编码 函数式编程 装饰器 列表生成式 生成器 内置方法

    python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf ...

  6. python字符串常用内置方法

    python字符串常用内置方法 定义: 字符串是一个有序的字符的集合,用与存储和表示基本的文本信息. python中引号中间包含的就是字符串. # s1='hello world' # s2=&quo ...

  7. Python 数据类型常用的内置方法(三)

    目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...

  8. python3.x Day4 内置方法,装饰器,生成器,迭代器

    内置方法,就是python3提供的各种函数,可以认为是关键字,帮助进行一些列的牛x运算. abs()#取绝对值 all([])#可迭代对象中的所有元素都为True 则为True,只要至少一个为Fals ...

  9. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05

    迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...

随机推荐

  1. [LC]26题 Remove Duplicates from Sorted Array (删除排序数组中的重复项)(双指针法)(原地实现)

    ①中文题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  2. saprk性能调优参考

    1.Tuning Spark 文档 原文:http://spark.apache.org/docs/latest/tuning.html 翻译参考:https://www.cnblogs.com/lh ...

  3. suseoj 1207: 大整数的乘法(java, 大数相乘, C/C++, 大数相乘)

    1207: 大整数的乘法 时间限制: 1 Sec  内存限制: 128 MB提交: 7  解决: 2[提交][状态][讨论版][命题人:liyuansong] 题目描述 求两个不超过200位的非负整数 ...

  4. [springboot 开发单体web shop] 8. 商品详情&评价展示

    上文回顾 上节 我们实现了根据搜索关键词查询商品列表和根据商品分类查询,并且使用到了mybatis-pagehelper插件,讲解了如何使用插件来帮助我们快速实现分页数据查询.本文我们将继续开发商品详 ...

  5. Docker从入门到掉坑(三):容器太多,操作好麻烦

    前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二): ...

  6. Java多线程——多线程方法详解

    本系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线程的深入剖 ...

  7. vue-cli从2升级到3报错error 404 Not Found: @wry/context@^0.4.0

    vue3出来了,想尝尝鲜. 于是按官方的方法卸载2安装3. npm uninstall vue-cli -g npm install -g @vue/cli 但是报错了 error 404 Not F ...

  8. [Part 1] Ubuntu 16.04安装和配置QT5 | Part-1: Install and Configure Qt5 on Ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/91842b71/,欢迎阅读! Part-1: Install and Configure Qt5 on Ubuntu 16.04 ...

  9. 浅谈Linux中的各种锁及其基本原理

    本文首发于:https://mp.weixin.qq.com/s/Ahb4QOnxvb2RpCJ3o7RNwg 微信公众号:后端技术指南针 0.概述 通过本文将了解到如下内容: Linux系统的并行性 ...

  10. PHP安全之道学习笔记2:编码安全指南

    编码安全指南 编程本身就应该是一门艺术,而安全编程更是一种在刀尖上舞蹈的艺术,不仅要小心脚下的锋利寒刃,更要小心来自网络黑客或攻击者的狂轰乱炸. - by code artist 1.hash比较的缺 ...