返回顶部
首页 > 资讯 > 后端开发 > Python >Python3下map函数的问题
  • 845
分享到

Python3下map函数的问题

函数map 2023-01-31 08:01:49 845人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

今天在群里有人问题,他的python程序在家里运行好好的,但在公司一运行,就出问题了,查来查去查不出来,于是我就把他的程序调转过来看了一下,发现又是Python2.7与python3的问题。代码是做了一个可定义任意位数的水仙花数函数def 

今天在群里有人问题,他的python程序在家里运行好好的,但在公司一运行,就出问题了,查来查去查不出来,于是我就把他的程序调转过来看了一下,发现又是Python2.7与python3的问题。
代码是做了一个可定义任意位数的水仙花数函数

def fn(n):
    rs = []
    for i in range(pow(10,n-1),pow(10,n)):
        rs = map(int, str(i))
        sum = 0
        for k in range(0,len(rs)):
            sum = sum + pow(rs[k],n)
        if sum == i:
            print(i)
if __name__=="__main__":
    n = int(input("请输入正整数的位数:"))
    fn(n)


在Python2.7下面运行结果:

请输入正整数的位数:5

54748

92727

93084

Process finished with exit code 0


但在Python3下面运行结果:

请输入正整数的位数:5

Traceback (most recent call last):

  File "D:/Program Files/JetBrains/PyCharm 2017.1.5/myPY/myPYPro/lesson001.py", line 18, in <module>

    fn(n)

  File "D:/Program Files/JetBrains/PyCharm 2017.1.5/myPY/myPYPro/lesson001.py", line 11, in fn

    for k in range(0,len(rs)):

TypeError: object of type 'map' has no len()

Process finished with exit code 1

因为提示是:TypeError: object of type 'map' has no len()
所以直接把代码简化,输出list看看
简化代码如下: 

rs = []
for i in range(100,1000):
    rs = map(int, str(i))
print(rs)


在Python2.7下面运行结果:
[9, 9, 9]
Process finished with exit code 0

但在Python3下面运行结果:

<map object at 0x00C6E530>

Process finished with exit code 0


好吧,这就明白了,Python3下发生的一些新的变化,再查了一下文档,发现加入list就可以正常了
在Python3中,rs = map(int, str(i))  要改成:rs = list(map(int, str(i)))

则简化代码要改成如下:

rs = []
for i in range(100,1000):
    rs = list(map(int, str(i)))
print(rs)

 

Python3下面运行结果就正常了:
[9, 9, 9]
Process finished with exit code 0


之前就发布过一篇关于:Python 2.7.x 和 3.x 版本区别小结


基于两个版本的不一样,如果不知道将要把代码部署到哪个版本下,可以暂时在代码里加入检查版本号的代码:
import platfORM
platform.python_version() 

通过判断版本号来临时调整差异,不过现在只是过渡,以后大家都使用Python3以下版本后,就应该不需要这样做了。



--结束END--

本文标题: Python3下map函数的问题

本文链接: https://lsjlt.com/news/192782.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3下map函数的问题
    今天在群里有人问题,他的Python程序在家里运行好好的,但在公司一运行,就出问题了,查来查去查不出来,于是我就把他的程序调转过来看了一下,发现又是Python2.7与Python3的问题。代码是做了一个可定义任意位数的水仙花数函数def ...
    99+
    2023-01-31
    函数 map
  • Python3的高阶函数map,red
    函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。注意其中:map和filter返回一个惰性序列,可迭代对象,需要转化为list >>> a = 3.1415 >>&g...
    99+
    2023-01-31
    高阶 函数 map
  • linux下python3连接mysql数据库问题
    python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb 1.安装pymysql pymysql就是作为python3环境下...
    99+
    2022-06-04
    数据库 linux mysql
  • 解决python3中自定义wsgi函数,make_server函数报错的问题
    #coding:utf-8 from wsgiref.simple_server import make_server def RunServer(environ, start_response): ...
    99+
    2022-06-04
    函数 自定义 报错
  • 解决python2中unicode()函数在python3中报错的问题
    python2中的unicode()函数在python3中会报错: NameError: name 'unicode' is not defined There is no su...
    99+
    2024-04-02
  • 关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
    前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明显的明暗不同的区域,如下图 可以看到左边部分因为整体偏暗,导致二值化后...
    99+
    2024-04-02
  • python的map()函数
    map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。map() 函数语法:map(function, iter...
    99+
    2023-01-31
    函数 python map
  • 详解Python map函数及Python map()函数的用法
    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...
    99+
    2022-06-04
    函数 详解 Python
  • python3中input的问题
    在python3中只有input而没有像python2中分类为raw_input和input 所以在python3中要使用整形的话  就要 使用 int() 例如 num=int(input()) 这样才不会报错,TypeError: ...
    99+
    2023-01-31
    input
  • Python3的编码问题
    ​介绍Python3中的编码问题前,第一个段落对字节、ASCII​与Unicode与UTF-8等进行基本介绍,如果不对这几种编码犯头晕,可直接跳过。 ASCII​与Unicode与UTF-8与GBK 首先从老大哥说起。跟很多人一样,...
    99+
    2023-01-31
  • python中的map()函数
    先来看一下官方文档: map(function, iterable, ...)Apply function to every item of iterable and return a list of the results. If ad...
    99+
    2023-01-31
    函数 python map
  • python3的zip函数
    zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象.这个可迭代对象可以使用循环的方式列出其元素若多个可迭代对象的长度不一致,则所返回的列表与长度最短的可迭代对象相同.用法1:用两...
    99+
    2023-01-31
    函数 zip
  • Mybatis的resultMap返回map问题
    目录resultMap返回map问题简单封装resultMap返回对象为mapresultMap返回map问题 <resultMap type="Map" id="bankMa...
    99+
    2024-04-02
  • 关于windos10环境下编译python3版pjsua库的问题
    环境: windows10_x64 python3.9_x64 pjsua-2.10 vs2015 pjsua编译参考这里: https://www.jb51.net/article...
    99+
    2024-04-02
  • Python3中的open函数
    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)    Open file and...
    99+
    2023-01-31
    函数 open
  • python3的函数调用
    python定义一个函数 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 () 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明 函数内容以冒号...
    99+
    2023-01-31
    函数
  • 浅谈mybatisPlus的Ipage分页和map参数的问题
    目录mybatisPlus的Ipage分页和map参数第一种情况第二种情况mybatisPlus IPage分页常见问题(坑)1.TooManyResultsExceptionmyb...
    99+
    2024-04-02
  • StretchDIBits函数参数问题
    StretchDIBits函数是Windows API中的一个函数,用于将图像数据绘制到设备上。该函数有很多参数,下面对其中一些重要...
    99+
    2023-08-18
    StretchDIBits
  • python3.x的print()函数默
    初学python ,写了个99乘法表,for i in range(1, 10) :    for j in range(1, i+1) :        print(j, 'x', i, '=', j*i,,end='\t')   pri...
    99+
    2023-01-31
    函数 print
  • Python3中的内置函数
    将一个整数转换成二进制string。eg:>>> bin(2)'0b10'返回Unicode 码点是整数i的string。ord()与chr()相反。eg:>>> chr(100)'d...
    99+
    2023-01-31
    函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作