Python学习笔记——持续更新

1、匿名函数lambda

一段示例代码:

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

reduce(f, [1,2,3])    # reduce的作用是将list中的值累计相加(f函数提供的计算)1+2=3,3+3=6
等价于:
reduce(lambda x,y:x+y, [1,2,3])
更多示例:

list1=[2, 18, 9, 22, 17, 24, 8, 12, 27]

[x for x in filter(lambda x:x%3==0, list1)]    # filter函数将已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中
[18, 9, 24, 12, 27]

[x for x in map(lambda x:x*2, list1)]    # map()将函数调用映射到每个序列的对应元素上并返回一个含有所有返回值的列表
[4, 36, 18, 44, 34, 48, 16, 24, 54]

这里需要注意的是filter和map两个函数在python2和3中的区别,在2中可以直接运行map(lambda x:x*2, foo)即可得出结果,而在3中如果直接运行的话,会显示为:<map at 0x1e7ae75ceb8>,所以如果想要得到值的话需要遍历下列表。


2、python的浅拷贝copy()和深拷贝deepcopy()

同样是以一个例子来开始:

import copy

a = [1,2,3,4,['a','b']]  # 原始对象
b = a
c = copy.copy(a)         # 对象拷贝,浅拷贝
d = copy.deepcopy(a)	 # 对象拷贝,深拷贝

a.append(5)
a[4].append('c')

print('a=', a)
a= [1, 2, 3, 4, ['a', 'b', 'c'], 5]

print('b=', b)
b= [1, 2, 3, 4, ['a', 'b', 'c'], 5]

print('c=', c)
c= [1, 2, 3, 4, ['a', 'b', 'c']]

print('d=', d)
d= [1, 2, 3, 4, ['a', 'b']]





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值