1.切片

L[0:3]表示,从索引0开始,直到索引3为止,但是不包括索引3。如果第一个索引是0,还可以省略L[:3]

倒数切片:L[-n:-1],-1是倒数第一个元素,L[-n:-1]不包括倒数第一个元素。L[-n:]表示取后n个数。

L[:10:2]:前十个数,每两个取一个。

元组和字符串都可以用切片操作。

2.迭代

因为dict的存储不是按照list的方式顺序排列的,所以迭代出的结果顺序很可能不一样。

默认情况下,dict迭代的是key,如果要迭代value,可以用:

for value in d.values():  #迭代value
for k,v in d.items(): #同时迭代key和value

判断一个对象是可迭代对象,通过collections模块的Iterable类型判断:

from collections imoprt Iterable
isinstance('abc',Iterable) #str是否可迭代
isinstance([1,2,3],Iterable) #list是否可迭代
isinstance(123,Iterable) #interger是否可迭代

要对list实现类似Java那样的下标循环:Python内置的enumerate函数可以吧list变成索引-元素对,这样可以在for循环中同时迭代索引和元素本身。

for i,value in enumerate(['A',‘B’,'C']):
print(i,value)

3.列表生成式

如:

[ x*x for x in range(1,11)]
#for循环后面加上if判断,筛选出符合要求的
[ x*x for x in range(1,11) if x%2==0]
#使用两层循环,生成全排列
[m+n for m in 'ABC' for n in 'XYZ']

4.生成器与迭代器(*****后面了解清楚*****)

如果列表元素可以按照某种算法推断出来,那么我们可以在循环过程中不断推算出后续的元素,这样不必创建完整的list,从而节省大量的空间,Python中,边循环边计算的机制,称为:generator

创建列表生成式的方法:

  • 把列表生成式的[]改成():使用for循环来调用

5.函数式编程:抽象程度很高的编程范式,允许把函数本身作为参数传入另外函数,还允许返回一个函数!

Python对函数式编程提供部分支持,由于Python允许使用变量,因此,Python不是纯函数式编程语言。

abs(-10)是函数调用,而abs是函数本身。函数本身可以赋值给变量,即变量可以指向函数。

函数名:其实就是指向函数的变量,对于abs()这个函数,完全可以吧函数名abs看成变量,它指向一个可以计算绝对值的函数。

高阶函数:

def add(x,y,f):
return f(x)+f(y)

sorted:

对于两个元素x,y,如果认为x<y,则返回-1,如果x==y,则返回0,如果认为x>y,则返回1,这样排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。

sorted也是一个高阶函数,它可以接收一个key来实现自定义的排序,如按照绝对值大小排序:

key指定的函数将作用于list的每一个元素上,并且根据key函数返回的结果排序。

6.返回函数

函数作为返回值

 ******闭包*****(以后了解清楚)

匿名函数:lambda 参数列表:函数

7.装饰器(Decorator)******后面补充******

8.偏函数

廖雪峰Python总结2的更多相关文章

  1. 廖雪峰Python电子书总结

    函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END ...

  2. 廖雪峰python教程的第一个疑问

    函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_ ...

  3. 廖雪峰Python实战day1

    一.按照廖雪峰的教程,安装开发环境,问题不大. 1.异步框架aiohttp:$pip3 install aiohttp 2.前端模板引擎jinja2:$ pip3 install jinja2 3.安 ...

  4. 【python】廖雪峰python教程学习--基础

     No1: 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的 No2: 用r''表示''内部的字符串默认不转义 No3: 以'''开头,敲回车可以换行 No4: 布尔 ...

  5. 廖雪峰 ---- Python教程

    这是小白的Python新手教程,具有如下特点: 中文,免费,零起点,完整示例,基于最新的Python 3版本. Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学 ...

  6. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  7. 廖雪峰Python学习笔记——序列化

    序列化 定义:程序运行时所有变量都存在内存中,把变量从内存中变成可存储或可传输的过程称为序列化pickling,在其他语言中称为serialization,marshalling,flattening ...

  8. 廖雪峰Python学习笔记——使用元类

    元类(MetaClasses) 元类提供了一个改变Python类行为的有效方式. 元类的定义是“一个类的类”.任何实例是它自己的类都是元类. class demo(object): pass obj ...

  9. 廖雪峰Python笔记

    △命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就 ...

  10. 廖雪峰Python总结5

    1.错误,调试和测试 程序编写造成了bug(必须修复) 用户输入出错(通过检查用户输入) 异常:无法在程序运行过程中预测的.异常是必须被处理的,否则程序会因为各种问题终止并且退出 1.try: try ...

随机推荐

  1. Luogu P1401 城市(二分+网络流)

    P1401 城市 题意 题目描述 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最 ...

  2. Django项目:CRM(客户关系管理系统)--59--49PerfectCRM实现CRM客户报名流程学生合同表单验证

    # sales_views.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.db import IntegrityError #主动捕 ...

  3. leetcode 696

    696. Count Binary Substrings Input: "00110011" Output: 6 Explanation: There are 6 substrin ...

  4. PAT甲级——A1046 Shortest Distance

    The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t ...

  5. 使用em为单位制作两列弹性布局

    一.DIV布局按照定位的方法分为:浮动方法(float),坐标定位方法(position),还有就是两者相结合的方法. 二.DIV布局按照定义单位的不同可分为:固定宽度布局.流体布局.弹性布局和混合布 ...

  6. 数据交换格式之 - Json

    Json简介: JSON是JavaScript对象表示法,是一种与语言无关的数据交换的格式,是一种完全独立于语言的文本格式. 使用ajax进行前后台数据交换,移动端与服务端的数据交换. web客户端和 ...

  7. webServices学习二(小试牛刀。jdk 方式发布一个应用)

    一.前提 1.用Jdk1.6.0_21以后的版本发布一个WebService服务. 2.与Web服务相关的类,都位于javax.jws.*包中.  1.主要类有: 1.@WebService - 它是 ...

  8. tensorflow高效地推导pb模型,完整代码

    from matplotlib import pyplot as plt import numpy as np import os import six.moves.urllib as urllib ...

  9. openCV图像合成

    #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.h ...

  10. [转]Event loop——浏览器和Node区别

    最近对Event loop比较感兴趣,所以了解了一下.但是发现整个Event loop尽管有很多篇文章,但是没有一篇可以看完就对它所有内容都了解的文章.大部分的文章都只阐述了浏览器或者Node二者之一 ...