Python 3.x Python-遍历列表-Lambda

Python 3.x Python-遍历列表-Lambda,python-3.x,list,function,loops,lambda,Python 3.x,List,Function,Loops,Lambda,下面我创建了一个函数,它遍历一个数字列表,从每个数字中选择最后3位数字,并将它们作为新数字放入另一个列表中。我还将它们从最小值到最大值进行排序。但是,我看到一条“TypeError:“int”对象不可编辑”消息。我的代码有什么问题?也怎么可能。我们用lambda函数做同样的事情 ids = [1600,1500,1800,1900,1700] alist=ids sorted_ids=[] def last_four(alist): for element in alist:

下面我创建了一个函数,它遍历一个数字列表,从每个数字中选择最后3位数字,并将它们作为新数字放入另一个列表中。我还将它们从最小值到最大值进行排序。但是,我看到一条“TypeError:“int”对象不可编辑”消息。我的代码有什么问题?也怎么可能。我们用lambda函数做同样的事情

ids = [1600,1500,1800,1900,1700]
alist=ids
sorted_ids=[]
def last_four(alist):
    for element in alist: 
        values=str(element)
        sorted_ids.append(values[1:4])
    return sorted(sorted_ids)

print(last_four(alist))

多谢各位

ids = [1600,1500,1800,1900,1700]
alist=ids
sorted_ids=[]
def last_four(alist):
    for element in alist: 
        values=str(element)
        sorted_ids.append(values[1:4])
    return sorted(sorted_ids)

print(last_four(alist))
结果:

对于你的第二个问题,这里是代码


您的代码似乎已经运行良好

如果您想使用lambda,您可以这样编写代码。(这与相同,唯一的区别是可以立即使用排序函数,而无需特意将贴图对象转换为列表对象。)

如果您不熟悉lambda的使用,或者您想了解如何一起使用lambda和排序函数,您可以阅读本文


祝您好运。

要选择最后3位数字,您可以使用
str(value)[:-3]
而不是
str(value)[1:4]
。这样,不管数字的长度如何,它总是取最后3位数字
last_four = list(map(lambda element: str(element)[1:4], alist))
print(sorted(last_four))
def main():
    ids = [1600, 1500, 1800, 1900, 1700]
    alist = ids
    sorted_last_four = sorted(map(lambda element: str(element)[1:4], alist))
    print(sorted_last_four)


if __name__ == '__main__':
    main()