欢迎使用CSDN-markdown编辑器
来源:互联网 发布:柜子设计软件手机 编辑:程序博客网 时间:2024/05/20 14:44
Python3中map对象问题
在python2中,map函数会返回一个list列表,例如:
>>>x=map(str,[1,2,3])['1','2','3']
在python3中,map函数返回的是一个map对象,例如:
>>>x=map(str,[1,2,3])<map at 0x22f40f3a630>
在python3中如果想要将这个map对象用列表的方式输出,需要用list()函数进行转换,例如:
>>>list(x)['1', '2', '3']
问题出现了,讲道理,刚刚执行的list操作是不会影响到map对象x本身的内容的,但是如果再对map对象x进行一次list操作,会发现x中的内容变为了空,影响了map对象的二次使用。例如:
>>>list(x)[]
具体整个过程看下图:
对于这个问题,我用的解决方法是,在生成map对象以后便用列表推导式把map对象转换为列表。
>>>x=map(str,[1,2,3])>>>x=[v for v in x]['1','2','3']
或者
>>>x=list(map(str,[1,2,3]))['1','2','3']
另外如果能有大神解答,为什么两次list操作会使得map对象变为了空的话,那就太感谢了!
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- abstract class和interface的区别
- 免费馅饼(注释加解析)
- MySQL多表操作
- [杂题] Codeforces 627F 8VC Venture Cup 2016
- oracle5
- 欢迎使用CSDN-markdown编辑器
- 关键字: 抽象类与接口的区别
- 面试题总结(一)
- 原子操作
- @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
- python公开课第六节
- 设计模式
- 欢迎使用CSDN-markdown编辑器
- 第二十章 JAVAIO流文件传输基础学习