python将列表中的每个元素进行一种处理:map()

起源 

 2023/1/10,今天在运行代码的时候,我需要使用自定义的数据集,然后根据索引划分数据集,但是他们给我的是“int 32”的索引,所以报了以下的错误:

IndexError: Only integers, slices (`:`), list, tuples, and long or bool tensors are valid indices (got int32).

根据错误提示,是类型错误“IndexError”。需要“integers”或者其他的类型才支持,所以 这里直接将索引处理为integers类型的:int(x)就可以了,

对列表中的每个元素进行int处理,有没有优雅的方式,所以出现了今天的博客


map() 会对迭代的序列中的每个元素做function操作

备注:可能会与 “set集合” 或者 “typle()元组” 整混

第一个参数 function 以参数序列中的每一个元素调用 function 函数(也可以是自定义的,但是很多的时候都是执行一些很简单的操作,直接使用lambda匿名函数会更加方便一些),返回包含每次 function 函数返回值的新列表。

语法

map() 函数语法:

map(function, iterable, ...)

参数

  • function -- 函数
  • iterable -- 一个或多个序列

实例代码:

注意:★★​​​​​​​★​​​​​​​lambda匿名函数很常用

>>> def square(x) :         # 计算平方数
...     return x ** 2
...
>>> map(square, [1,2,3,4,5])    # 计算列表各个元素的平方
<map object at 0x100d3d550>     # 返回迭代器
>>> list(map(square, [1,2,3,4,5]))   # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))   # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>

或者例如要将每个元素变为整数:

list(map(int, [1,2,3,4,5]))

Python map() 函数 | 菜鸟教程

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/128624665