首页 > 解决方案 > Python - 遍历列表 -Lambda

问题描述

下面我创建了一个函数,它遍历一个数字列表并从每个数字中选择最后 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))

上面的代码

非常感谢!

标签: python-3.xlistfunctionloopslambda

解决方案


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

如果您想使用 lambda,您可以编写类似这样的代码。(这与发布的答案相同,唯一不同的是您可以立即使用排序功能,而无需刻意将地图对象转换为列表对象。)

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()

如果您不熟悉使用 lambda,或者您想了解如何一起使用 lambda 和排序函数,您可以阅读发布的这个答案

祝你好运。


推荐阅读