1、if python
a = 1
b = 2
c = a if a > b else b
2、with
with open('/path/to/file', 'r') as f:
print f.read()
3、map
大多数的for循环可以用map来代替,用法是:map(func,seq),对seq中的每个元素进行操作,具体什么操作在func里定义
array = [1, 2, 3]
square_array = map(lambda i: i ** 2, array)
map的第一个参数是lambda表达式,冒号前面的i作为形参,来自于array中的元素,冒号后面就是要返回的值。当然你也可以使用列表推导式来代替:
array = [1, 2, 3]
square_array = [i ** 2 for i in array]
4、filter
用法与map类似:filter(func,seq),对seq中的元素进行过滤,返回符合条件的那些元素。比如返回array = [1, 2, 3, 4]
中的所有奇数:
print filter(lambda i: i % 2, array)
这里是对2取余,返回结果为True的元素。那么什么情况下结果True?Python里面不为0,None或者null都是True。所以结果就是,偶数是False,奇数是True,返回所有奇数。列表推导式方案:
print [i for i in array if i % 2 != 0]
5、reduce
用法:reduce(func,seq),对seq中的每个元素进行func操作,最后汇总返回一个值。
1.求array = [1, 2, 3]所有元素的和:
print reduce(lambda x, y: x + y, array)
reduce会先将array里面的头两个数分别作为x和y,求它们的和,然后把它的结果和第三个相加,再把结果和第四个相加,直到最后一个元素。
2.求array = [1, 2, 3] 中的最大值:
print reduce(lambda x, y: x if x > y else y, array)
网友评论