||
各位在用map函数时是不是也有个疑问,特别是3.x以上的版本,在2.x的版本中map函数很好理解,现在版本升级了反而越来越难搞了,map这个函数在高版本中竟然是一个对象了??!完全是一脸懵逼的,而map后的对象有种“阅后即焚”的感觉,不信咱试试哈。如下举例:
1、想获取对象中的东西,也就是该对象到底是啥?
>>> a=[[1, 2,3, 4,6], [2, 3,4, 5,6]] >>> a2=map(set, a) >>> a2 <map object at 0x000000000C462438> #a2是个对象啊 #将a2中的东西全部打印出来 >>> for item in a2: print(item) {1, 2, 3, 4, 6} {2, 3, 4, 5, 6} >>> a2 <map object at 0x000000000C462438> #再次查看a2地址没变,但是再次遍历打印为空 >>> for item in a2: print(item) #a2再也不愿意出来了见客了,只能使用它一次,再用它就不理你了 >>> list(a2) [] #list后为空
2、将对象转化为列表,仍旧只能用一次,惹不起
>>> b=[[1, 2,3, 4,6], [2, 3,4, 5,6]] >>> b2=map(set,b) >>> b2 <map object at 0x0000000002F49F60> >>> list(b2) [{1, 2, 3, 4, 6}, {2, 3, 4, 5, 6}] >>> b2 <map object at 0x0000000002F49F60> #用过一次它就消失了 >>> list(b2) [] >>> for ii in b2: print(ii) >>>
3、直接赋值式复制不能备份