Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用map和lambda将int应用于每个字符串?_Python_Lambda - Fatal编程技术网

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

如何在python中使用map和lambda将int应用于每个字符串?,python,lambda,Python,Lambda,我希望避免对列表中的每个元素执行丑陋的int 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) f

我希望避免对列表中的每个元素执行丑陋的int

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吗,因为map已经可以做这项工作了?

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

您应该使用float而不是int来计算map是否返回smth的平均值(至少在python2中是这样)?是否需要执行lst=map(int,lst)?@ERJAN map()返回一个map对象。您需要将其转换为列表。例如:list2=list(map(int,list1))IMHO
int
更好地描述为一个可调用函数,而不是一个函数。谢谢,@VPfB,这可能是正确的。什么是可调用的,它与函数有何不同?@richardcallable是类、类方法、函数、lambda以及其他可能被调用的对象的通用术语。函数是用
def
关键字定义的。