如何在python中使用map和lambda将int应用于每个字符串?

时间:2018-11-30 07:33:35

标签: python lambda

我想避免对列表中的每个元素进行丑陋的诠释。

dictionary[l[0]] = [(int(l[1])+ int(l[2])+ int(l[3]))/3] #avg score of 3 grades
    sub1 += int(l[1])
    sub2 += int(l[2])
    sub3 += int(l[3])

列表l有4个元素,0到3个索引。我需要从第一个元素开始应用int,而不是从第0个元素开始。

我正在尝试写类似的东西:

   map lambda x: int(x) for i in l[1:]

由于地图已经可以完成这项工作,因此我需要lambda吗?

1 个答案:

答案 0 :(得分:4)

map在列表的每个元素上调用一个函数。由于int是您可以使用的功能

map(int, lst)

直接。

Lambda函数可以为您提供更大的灵活性,比如说:

map(lambda x: 5*int(x), lst)

执行上述操作的另一种Python方式是使用列表理解

[int(x) for x in lst]
[5*int(x) for x in lst]

在Python3中,map返回一个生成器。如果您希望有一个列表,则可以:

list(map(int, lst))
相关问题