1、切片

切片:截取可迭代对象的部分内容(list,tuple,dict,set,str)

2、列表解析式

列表解析式可以快速的生成一个列表

不带if条件的:

格式:[expression for i in Iterable]

>>> l = [x for x in range(10)]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

带if条件的:

>>> l = [x for x in range(10) if x%2==0]
>>> l
[0, 2, 4, 6, 8]

二维列表生成:

>>> ll=[[i for i in range(10)] for j in range(10)]
>>> ll
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
>>> for i in ll:
... print(i)
...
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

3、map

映射(map):对可迭代对象中的每个元素执行指定的函数,第一个参数是函数名,第二个参数是Iterable(可迭代对象),返回的map属于Iterator

>>> def pow_l(x):
... return x**2
...
>>> a=map(pow_l,range(1,10))
>>> print("a 的类型:%s" %type(a))#查看类型
a 的类型:<class 'map'>
>>> from collections import Iterator
>>> from collections import Iterable
>>> print("a 是Iterator:%s" %isinstance(a,Iterator))#查看是否是Iterator
a 是Iterator:True
>>> print("a 是Iterable:%s" %isinstance(a,Iterable))#查看是否是Iterable
a 是Iterable:True
>>> for i in a:#a作为Iterable使用
... print(i,end=' ')
...
1 4 9 16 25 36 49 64 81

4、reduce

归纳函数(reduce):第一个参数是函数名,第二个参数是sequence(序列,像list,tuple,str,set,dict都可以)

效果:reduce(f,[x1,x2,x3,x4])    =    f(f(f(x1,x2),x3),x4)

>>> from functools import reduce
>>> def add_l(x,y):
... return x+y
...
>>> r_l=reduce(add_l,range(1,10))
>>> print(r_l)
45

>>> print("r_l 的类型:%s" %type(r_l))
r_l 的类型:<class 'int'>

5、filter

过滤器(filter)第一个参数是函数名,用于筛选的函数,第二个参数是Iterable(list,tuple,set,dict,str),返回一个filter且filter属于Iterator

用于过滤掉一切不需要的东西

6、lambda

只有一行的函数

正经函数:

>>> def square_l(x):
... return x*x
...
>>> square_l(2)
4

lambda:

>>> squarel=lambda x:x*x#冒号后面的一切都是对输入的操作,然后lambda x会返回结果

>>> squarel(2)
4

#配合map,filter等lambda能发挥更大作用

>>> list(map(lambda x:x*x,[1,2,3,4,5]))
[1, 4, 9, 16, 25]

>>> list(filter(lambda x:x<4,[1,2,3,4,5]))
[1, 2, 3]

Python六剑客的更多相关文章

  1. 一句话搞定python六剑客

    六剑客 一行搞定六剑客:三个函数:map filter reduce + lambda 切片 推导列表 python最有特点的一行代码,所有代码均可以借用一行代码(目标) 1.map(函数,列表或者字 ...

  2. python六剑客:map()、lambda()、filter()、reduce()、推导类表、切片

    一:map():映射 map()有两个参数,一个函数,一个序列,序列中每一个元素都会做为参数传给前边的函数,然后生成新的列表, 第二个参数必须用一个序列:元祖,列表,字符串 >>> ...

  3. python 练习用python六剑客实现一个统计数字的个数,六剑客:(map、lambda、reduce、filter、切片、推到列表)

    统计一共有几个数字 s="sdfa45ads46723" #lambda >>> filter(lambda x:x.isdigit(),list(s)) ['4 ...

  4. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  5. python(六)内置函数

    一.函数知识补充 函数不设置值,默认返回None:函数中参数都是按引用传递,函数里修改了参数,原始参数也会修改. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  6. python(六):面型对象--类的特殊方法

    一.跟实例创建和执行有关的 __new__.__init__.__call__. 类加括号调用了__init__方法来创建一个实例对象.这一过程分成了两步: 类调用__new__来创建实例对象,__n ...

  7. Python(六) Python 函数

    一.认识函数 help(方法名字)  help(round) 1.功能性 2.隐藏细节 3.避免编写重复的代码 4.组织代码 自定义函数 二.函数的定义及运行特点 # 递归 def sum_num(n ...

  8. 吾八哥学Python(六):运算符与表达式

    上篇简单学习了数学运算符,今天来学习下完整的Python运算符与表达式,具体看下面的表格吧! 表1 运算符与它们的用法 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.’a’ + ‘ ...

  9. python六十四课——高阶函数练习题(三)

    案例五:求两个列表元素的和,返回新列表lt1 = [1,2,3,4]lt2 = [5,6]效果:[6,8,10,12] lt1=[1,2,3,4] lt2=[5,6] print(list(map(l ...

随机推荐

  1. Django生成脚本迁移文件时,报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

    一.本人环境:django:3.0.2, python:3.8.1,  pymysql:0.9.3 二.解决步骤: 1.django目录下找到 base.py文件: 2.在base.py文件中注释以下 ...

  2. cli4适配移动端

    1.首先在项目中安装以下依赖 npm install px2rem-loader --savenpm install amfe-flexible --savenpm install postcss-p ...

  3. Java8之Stream详解

    Java8中提供了Stream对集合操作作出了极大的简化,学习了Stream之后,我们以后不用使用for循环就能对集合作出很好的操作.   一.流的初始化与转换   Java中的Stream的所有操作 ...

  4. Network Initialization: Fan-in and Fan-out

    https://github.com/pytorch/pytorch/blob/master/torch/nn/init.py @weak_script def _calculate_fan_in_a ...

  5. 从servlet向jsp中传数据用Java接收js调用

    servlet: response.sendRedirect("showMessage.jsp?ValueA=1"); jsp: var a=<%=request.getPa ...

  6. 远程执行本地脚本_linux

    一.远程执行脚本 1.免机器指纹确认(无需填写yes/no) ssh -o StrictHostKeyChecking=no root@192.168.108.78 2.远程执行本地脚本 ssh -o ...

  7. 题解【洛谷P1083】[NOIP2012]借教室

    题面 二分到哪一个申请人要修改订单,可以差分\(+\)前缀和达到\(\Theta(n)\)的\(\text{check}\). 具体细节见代码. #include <bits/stdc++.h& ...

  8. Nginx 配置Websocket

    Nginx反向代理配置websocket nginx.org 官网推荐如下的配置,也可以直接看官网:http://nginx.org/en/docs/http/websocket.html http ...

  9. windows安装python64位和32位的方法

    1.先安装python 64位的 python,创建一个64位的python虚拟环境: 2.再安装python 32位的 python,创建一个32位的python虚拟环境即可. 注意:两个版本安装在 ...

  10. Facebook Create Done!

    前天,又一次开了VPN,建立了自己的Facebook! Facebook我用邮箱注册的,注册邮箱在这里: acmit1966@outlook.com Facebook上我就叫做 Jack Deng 在 ...