输入
python3中去除了raw_input('info')函数,input(‘info’)的所有输入均视为字符串
显而易见,input()的读入为一行,没有其他的分隔符
>>> a = input('INPUT:')
INPUT:1 2 3 4
>>> b = input('INPUT:')
INPUT:1,2,3,4
>>> a,b
('1 2 3 4', '1,2,3,4')
映射map
map(func_name, order...):func_name为函数,iterable..为1到多个序列
python2直接返回序列,python3返回一个迭代器,可以用list(iterable)转化为列表。
>>> def square(x):
... return x**2
...
#这里必须回车一行,不然语法不正确 = =
>>> a = map(square, [1,2,3])
>>> a
<map object at 0x000002689DC24370>
>>> list(a)
[1, 4, 9]
>>> b = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
>>> list(b)
[3, 7, 11, 15, 19]
匿名函数lambda
主体是表达式,非代码块;
有自己的命名空间,不能访问自有参数列表之外的参数(全局也不可);???看例子,存疑
不同于C/C++的内联函数,后者调小函数达到不占用栈内存以增加运行效率的目的。
语法:lambda arg1,... : expression
>>> sum = lambda arg1, arg2: arg1 + arg2
>>> sum(2,3)
5
>>> a = 1
>>> sum = lambda arg1, arg2: arg1 + arg2 + a
>>> sum(2, 3)
6