Python map方法真心好用

Python下有个map方法,结合一些单目操作符或单参数的函数对iterable实例进行操作真的非常好用。

  1. 如下代码将通过localtime获得的时间信息数组转换为字符串数组:
','.join(map(str, time.localtime()))
  1. 如下进一步控制了转换后字符串的格式,注意分隔符为空,仅转换前六位元素(年月日时分秒):
''.join(map('{0>2d}'.format, time.localtime()[0,6])) # 好吧我承认可以使用strftime
一些备注
  • 新版string format方法的确方便了很多,可以灵活地控制输出格式。如上{0>2d}表示对应位置的整型值至少显示两位,否则左侧补零;
  • 如果希望采用双目或多目运算符,抑或使用多参数的方法,猜测应该需要采用placeholder,或者传入元素为同维度元组的数组。这一点纯猜,没有验证;
  • map的实现应该很简单,但是大大地方便了用户。至于其实现,其实类似stl alogrithm里的函数了,如std::transform或std::for_each等,均可以实现这个效果。不过map这个字眼老实说让用户非常直观地猜到它的意图。能及时跟上概念的演进也是新语言(相对c/c++)的优势吧。