python学习笔记(五)

第二十一讲lambda表达式(匿名函数)

1.      基本语法

lambdax : 2 *x + 1

等同于

def xxxx):

           return x : 2 *x +1

 

2.      复杂的内置函数

a)        filter(function orNone, sequence)

返回的sequence为True的值。如果function是None,返回参数为true                       

的值。如果序列是一个元组或字符串,返回相同的类型,否则返回一个列表list。

filter(lambda x:x%2,range(10))

输出:[1, 3, 5,7, 9]

list(filter(None,[1,0,False,True]))

输出:[1, True]

b)        map function, sequence[,sequence, ...] ——> list

返回一个使用sequence调用function的结果。如果给出多个sequence,就返回调用结果的列表。当所有sequence不具有相同长度时,使用None替代缺失的值。如果function是None,则直接返回sequence的列表

map(lambda x:x * 2,range(10))

输出:[0, 2, 4,6, 8, 10, 12, 14, 16, 18]

 

第二十二讲 递归

1.      计算阶层:

defjc(x):

         if(x!=1):

                    returnx*jc(x-1)

         else:

                              return(x)

 

第二十三讲 递归进阶

1.      斐波那契数列递归实现:

        1 n=1

 F(n)    1  n=2

       f(n-1)+f(n-2)  n>2

越来越接近于黄金分割比!

def f(x):

if x==1 or x==2:

           return 1

else:

           returnf(x-1)+f(x-2)

 

如果使用迭代时间会快很多

      

第二十四讲 递归汉诺塔

1.      代码实现:

defhanoi(n,x,y,z):

    if(n == 1):

        print (x,'-->',z)

    else:

        hanoi(n-1,x,z,y)#将n-1个移动到y上

        print(x,'-->',z)#将最底下最后一个盘子从x移动到z上

        hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上

 

n=int(input('汉诺塔层数:'))

hanoi(n,'x','y','z')

第二十五讲 字典

1.      创建字典(映射类型)

Dic1={‘111’‘aaaaa’,’2222’:’bbbbbbb’,’3333’‘cccccccc’}

Dic1=dict(((‘111’,’aaaaa’),(‘2222’,‘bbbbbbbb’),(‘3333’,’ccccccc’)))

Dic1=dict(111=’aaaaa’,22222=’bbbbbbbbbb’)

2.      调用字典:

Dic1[‘111’]

返回‘aaaaa’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值