【问题标题】:Getting attribute error: 'map' object has no attribute 'sort'获取属性错误:“地图”对象没有属性“排序”
【发布时间】:2016-01-16 21:14:39
【问题描述】:

我正在尝试按升序对数组进行排序。但是代码出现以下错误:

a=[]
a=map(int, input().split(' '))
a.sort()
print (a)

帮帮我...

    ERROR : AttributeError: 'map' object has no attribute 'sort'

【问题讨论】:

  • 错误信息是什么?
  • 这与问题无关,但split()(即不带参数)是比split(' ')更好的选择。

标签: python python-3.x sorting iterable


【解决方案1】:

在 python 3 中,map 不返回列表。相反,它返回一个迭代器对象,并且由于 sortlist 对象的一个​​属性,因此您会遇到属性错误。

如果要对结果进行就地排序,则需要先将其转换为列表(不推荐)。

a = list(map(int, input().split(' ')))
a.sort()

但是,作为一种更好的方法,您可以使用sorted 函数,该函数接受可迭代并返回排序列表,然后将结果重新分配给原始名称(推荐):

a = sorted(map(int, input().split(' ')))

【讨论】:

  • 谢谢.. 成功了...你能推荐一些有用的网站,我可以从中学习python吗...?
  • 天哪,写一个简单的map...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 2020-03-13
  • 2021-12-10
相关资源
最近更新 更多