一,高级特性:

1,切片:[start:stop:step]

>>>l=range()
>>>l[,-,]
resulte is []

2,迭代

  2.1按itervalues()

>>> d={1:2,2:3,3:4}
>>> for k in d:
... print k,d[k]
...
1 2
2 3
3 4

  2.2 按iteritems()

>>> for v in d.iteritems():
... print v
...
(1, 2)
(2, 3)
(3, 4)
以元组形式返回

  2.3 带索引输出:enumerate

>>> for i,value in enumerate(['a','b','c']):
... print i,value
...
0 a
1 b
2 c

  2.4 生成器:一边循环一边计算的机制,称为生成器(Generator),有利于节省存储空间,相当于链表中next

>>> def fib(max):
... n,a,b=0,0,1
... while n<max:
... yield b
... a,b=b,a+b
... n=n+1
...
>>> fib(6)
<generator object fib at 0x7f7f3c2b94b0>
>>> for i in fib(6):
... print i
...
1
1
2
3
5
8

(二),函数式编程

1,高阶函数:函数名当作方法的参数变量

>>> def add(x,y,abs):
... return abs(x)*abs(y)
>>> def cut(x,add):
... return x-add(x,x,abs)
...
>>> cut(1,add)
0

2,map

把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字
map(lambda s :s.capitalize(),['AC','ac']
[Ac,Ac]

reduce:

>>> l=map(lambda s:s.capitalize(),['AC','ac'])
>>> reduce(lambda x,y:x+y,l)
'AcAc'

filter:

>>> import math
>>> def isPrim(s):
... for i in range(2,int(math.sqrt(s)+1)):
... if s%i==0:
... return False
... return True
...
>>> filter(isPrim,range(2,10))
[2, 3, 5, 7]
>>> import time
>>> print time.mktime(time.localtime())//时间计算
1497605034.0

3,sorted  x>y 1,x<y -1 x==y 0

 sorted([1,3,2],lambda x,y:y-x) //如果y-x>0则两个数交换位置,使用冒泡排序
[3, 2, 1]

4,闭包(Closure),使用返回函数形式:

def count():
fs=[]
for i in range(1,4)
def f(j):
def g():
return j*J
return g
fs.append(f(i))
return fs
for i in count():
print i,j

5,匿名函数:lambda

6,“装饰器”(Decorator):对方法进行增强说明,但有不去改变方法

import functools

def log(args):
""""""
task = "call"
def actual_log(func):
@functools.wraps(func)
def wrapper(*args,**kw):
print '%s:%s()' % (task,func.__name__)//两个下划线
return func(*args, **kw)
return wrapper
if hasattr(args,'__call__'):
return actual_log(args)
else:
task = args
return actual_log @log
def f():
pass @log("execute")
def e():
pass

5,偏函数

>>> max2=functool.partial(max,10) //10作为*args的一部分自动加到左边
>>> max2(1,3,4,5)
10
>>> def func(a,b,c):
>>>  print a,b,c
>>>func2=functools.partial(func,b=3) 替换关键参数
>>>func(1,c=4)
1 3 4

python学习心得的更多相关文章

  1. python学习心得第五章

    python学习心得第五章 1.冒泡排序: 冒泡是一种基础的算法,通过这算法可以将一堆值进行有效的排列,可以是从大到小,可以从小到大,条件是任意给出的. 冒泡的原理: 将需要比较的数(n个)有序的两个 ...

  2. python学习心得第四章

     python 学习心得第四章 1.lambda表达式 1:什么是lambda表达式 为了简化简单函数的代码,选择使用lambda表达式 上面两个函数的表达式虽然不一样,但是本质是一样的,并且lamb ...

  3. python学习心得第三章

    python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...

  4. 获奖感想和python学习心得

    一,获奖感想 很荣幸能成为小黄杉的获得者,也很感谢老师对我的这份鼓励和期望.回顾本学期的python学习中,我从一名对编程一无所知的小白,成为一名刚入门的程序猿.首先,我要感谢我的任课老师娄嘉鹏老师, ...

  5. Python学习心得体会总结,不要采坑

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:樱桃小丸子0093   大家要持续关注哦,不定时更新Python知识 ...

  6. python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  7. python 学习心得

    多用类或是函数 我以前写的时候,不用函数,从头写到尾,后来,要改成函数,也是要花很多测试的时间,改的话还得一个调试,如果一开始就用函数的话,就能节省很多时间. 函数的功能尽可能的小 比如说像我用try ...

  8. python学习心得第二章

    python基础 1.关于python编码的问题. python的编码现在主要是两种版本python2.7和python3.5 python2.7默认的是ascii码进行编译,我们可以采用 # -*- ...

  9. Python学习心得--变量类型篇

    1.Python允许同时为多个变量赋值.例如:a = b = c = 1 2.Python允许多个对象指定多个变量.例如:a1, b1, c1 = 1, 2, "john" 3.使 ...

  10. python学习心得(三)

    一,面向对象编程 1,类和实例, class Student(object):#括号里面的是继承的类 def __init__(self, name, score):初始化对象时,参数个数 self. ...

随机推荐

  1. 动态规划DP的斜率优化 个人浅解 附HDU 3669 Cross the Wall

    首先要感谢叉姐的指导Orz 这一类问题的DP方程都有如下形式 dp[i] = w(i) + max/min(a(i)*b(j) + c(j)) ( 0 <= j < i ) 其中,b, c ...

  2. Mysql 索引原理(转自:张洋)

    摘要 本文以MySQL数据库为 研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据 库支持多种索引类型,如 ...

  3. 汕头市队赛 SRM 07 C 整洁的麻将桌

    C 整洁的麻将桌 SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周双打了n场麻将,但她这次没控分,而且因为是全民参与的麻将大赛,所以她的名 ...

  4. c#深拷贝的一个方法

    使用ef,有时候会遇到,要对一个对象进行拷贝复制,可是一般的方法,拷贝后会提示此对象的实例在上下文的 entitystate已经存在,就需要用一种拷贝.简单的拷贝只拷贝了值类型,对引用类型的拷贝需要使 ...

  5. 题(NOIP模拟赛Round #10)

    题目描述: 有一张的地图,其中的地方是墙,的地方是路.有两种操作: 给出个地点,询问这个地点中活动空间最大的编号.若询问的位置是墙,则活动空间为:否则活动空间为询问地点通过四联通能到达的点的个数.如果 ...

  6. 1.1 由C++Builder 6.0 通向OpenGL(1)

    http://book.51cto.com/art/201104/255588.htm 第1章  架好通向OpenGL的桥 本章主要是为以后进行的OpenGL编程进行一些铺垫工作.主要内容有:Open ...

  7. kubernetes 搭建集群内服务

    nginx-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: webapp spec: replicas: 2 te ...

  8. [BZOJ2095][Poi2010]Bridges 二分+网络流

    2095: [Poi2010]Bridges Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1187  Solved: 408[Submit][Sta ...

  9. Codeforces 798 B. Mike and strings-String的find()函数

    好久好久好久之前的一个题,今天翻cf,发现这个题没过,补一下. B. Mike and strings time limit per test 2 seconds memory limit per t ...

  10. HDU 2553 N皇后问题(回溯 + 剪枝)

    本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5398797 题意: 在N*N(N <= 10)的方格棋盘放置了N个皇后,使得它们不相互攻击(即 ...