一、map()函数
1、map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map(func,iterables)
2、其中iterables是迭代函数的意思,也就是要执行function的序列。在python 3x中,map函数生成的map() 生成的是迭代器不是list,直接运行会提示“<map at 0x1fb2382ce10>”一类的信息,如下第一行代码;如果要生成list,可以在map前加上list,即list(map()),如下第二行代码。
map(sum,([1,2],[3,4]))
list(map(sum,([1,2],[3,4])))
3、以下是更多map()的使用实例。
>>>def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
总之,在需要对序列的每一个元素进行操作时,map()是个不错的选择。
二、lambda函数
Lambda函数又称匿名函数,匿名函数就是没有名字的函数,在实际运用中主要用于只使用一次,功能较为简单的函数。
lambda argument_list: expression
argument_list即参数列表,expression指函数的具体表达。如最简单的lambda函数。
>>> lambda x :x+1
<function <lambda> at 0x000001E2703B9D90>
#因为lambda是匿名函数,如果单独运行它的话要给它一个名字。
>>> add = lambda x :x+1
>>> add(2)
3
关于具体的使用方法和场景,可以参见以下博客:
https://www.cnblogs.com/huangbiquan/p/8030298.html
三、二进制移位
“>>‘”和“<<”都是位运算,对二进制数进行移位操作。
①“<<” 是左移,末位补0,类比十进制数在末尾添0相当于原数乘以10,
x<<1是将x的二进制表示左移一位,相当于原数x乘2。
整数4在二进制下是100,4<<1左移1位变成1000(二进制),结果是8。