我想避免对列表中的每个元素进行丑陋的诠释。
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吗?
答案 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))