小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
列表是最常用的Python数据类型,它的表现形式是一系列中括号内的逗号分隔值,并且这些值可以为不同的数据类型。例如:
list1 = ['juejin', 'better', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
有时我们需要将列表内的元素转换为某一特定的类型,例如我之前在研究一个NLP算法时,将一组单词向量化为了[['2,'1','7','5'],['9','8','4','1'],['7','4','3','0']]的形式,可以注意到,里面的数字并非整型数据,而是字符串型的数据,然而我后续需要使用的是整型向量(以进行机器学习),也就意味着我需要将该列表中的所有元素都转化为整型数据。
那么应该怎么实现上述需求呢?Let's go!
1. Python的map()方法
map() 方法是会根据提供的函数对指定序列做映射。语法如下:
map(function, iterable, ...)
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表,且该function支持匿名函数。
参数释义:
- function: 函数;
- iterable: 一个或多个序列;
PS:省略号的意义是,如果你的function需要多个参数,则作为参数的itetable便需要多个;
示例如下:
def square(x): #计算平方数
return x ** 2
map(squre,[1,2,3]) #计算列表各个元素的平方
#输出为[1,4,9]
#function为匿名函数的形式
map(lambda x,y : x + y,[1,2,3],[4,5,6]) #function需要两个参数,因此需要输入两个iterable
#输出为[5,7,9]
注意: 在Python2中,该方法直接返回一个列表;Python3中,该方法放回一个迭代器!!!
2.使用map()方法完成列表元素类型转换
开门见山,利用map() 方法转换列表元素类型的代码如下:
map(type,list)
参数释义:
- type: 希望转换到的类型;
- list: 待转换的列表;
示例如下:
#Python2环境下,将元素为字符型的列表转换为元素为整型的列表
listA = ['1','2','3']
listNew = map(int,listA) #将listA转换为整型
print listNew
#输出为[1,2,3]
#Python3环境下,因为map()方法返回的是一个迭代器,因此我们需要将其转换为列表输出
listB = ['4','5','6']
iterableNew = map(float,listA) #将列表元素由字符型转换为浮点型,此时返回值是一个迭代器
listNew = list(iterableNew) #将迭代器转化为列表
以上就是Python中将列表中元素转换为希望类型的方法了,觉得有用的话还请点赞留言。
对文章有任何意见和建议烦请留言或私信,感谢您的指正。