题目
代码
while True:
try:
a,b=map(int,input().strip().split())
print(a+b)
except:
break
笔记
map()函数
语法
map(function, iterable, ...)
,其中 function 是一个函数, iterable 是一个或多个序列。在python2中返回一个列表,而在python3中返回迭代器。
实例
- 使用自定义函数
- 使用lambda匿名函数
a = map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])
print(list(a))
# 结果如下
[(8,5),(16,6),(6,7)]
lambdax函数做其他处理
3. 不传入函数
等同于zip(),将多个列表相同位置的元素归并到一个元组
a = map(None,[2,4,6],[3,2,1])
print(list(a))
# 结果如下
[(2,3),(4,2),(6,1)]
- 类型转换
- 元组转换
a = map(int,(1,2,3))
print(list(a))
# 结果如下:
[1,2,3]
- 字符串转换
map(int,'1234')
print(list(a))
# 结果如下:
[1,2,3,4]
- 提取字典中的key,并将结果放在一个list中
a = map(int,{1:2,2:3,3:4})
print(list(a))
# 结果如下
[1,2,3]
注意
如上文所说,在python3中,使用map得到的返回值是一个迭代器,直接输出并不能得到结果,将它转换为list类型后可得目标结果。
strip()方法
语法
str.strip([chars])
, strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,并不能删除中间部分的字符。返回移除之后的新字符串。
实例
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
# 结果如下
3abcrunoob3
根据上方实例发现,移除的元素并不受顺序影响,只要原字符串首尾位置包含字符1和2就会被移除。用一个不同的实例去验证:
str = "123000abc321000"
print (str.strip( '210' ))
# 结果如下
3000abc3
由此可证实上方论述,同时,如果首尾位置在去除过程中遇到非目标字符,即使该字符后方有目标字符也会停止。
参考资料
Python map() 函数——菜鸟教程
python中的map函数
Python strip()方法——菜鸟教程