美文网首页投资界生活不易 我用python
Python 列表元素字符串转浮点

Python 列表元素字符串转浮点

作者: speculatecat | 来源:发表于2018-07-29 17:55 被阅读0次

在网络爬虫或者读取文件中的数据时,很多时候读取出来的数值是字符串形式的,这些字符串形式的数据并不能用来作计算或者更深入的操作,因此我们需要把他们转换为数值的形式。

简单粗暴的 for 循环

假设,这里有一个以字符串形式存储数值的列表,具体如下:

a = ['2', '3.5', '10', '88', '32.66']

我们需要将其转换为浮点的形式,最简单粗暴直接的方法,可以使用 for 循环 来处理,方法如下:

a_float = []
for num in a:
    a_float.append(float(num))

a_float
>> [2.0, 3.5, 10.0, 88.0, 32.66]

我们通过 for 循环, 把列表中的每一个数值都用 float() 函数将其转换成浮点的形式,然后再将转换后的值添加到一个新列表中,最终我们即可得到一个浮点值得列表。

更优雅的 map() 方法

如果我们每次都需要写一个 for 循环,这样一来显得不优雅,二来代码看起来也很冗长。我们也可以使用 map() 方法来处理。具体代码如下:

a_float_m = map(float, a)
a_float_m
>> <map at 0x109854da0>
a_float_m = list(a_float_m)
[2.0, 3.5, 10.0, 88.0, 32.66]

和刚才的 for 循环 对比,我们使用 map() 方法,只需要一行代码就可以完成。这里有一点需要注意,在 Python2 中,map() 返回的是列表,而在 Python3 中,返回的是迭代器。因此,我们这里如果想得到一个列表,我们还需要使用以下 list()

意外的处理

很多时候,我们的原始数据未必是那么完美,假如我们原始的列表中,有一些不能转换的数据,那情况将如何?接下来,我们对 a 列表进行一些改造。

a.append('a')
a
>> ['2', '3.5', '10', '88', '32.66', 'a']

接下来,我们还是对 a 使用 map() 方法:

a_float_new = list(map(float, a))
>> ValueError: could not convert string to float: 'a'

这时,我们的程序就报错了,因为字符串不能转成浮点数值。如果我们还希望继续完成这个转换,我们就需要对改造一下处理的函数,具体代码如下:

def safe_float(number):
    try:
        return float(number)
    except:
        return None

a_float_new = list(map(safe_float, a))
a_float_new
>> [2.0, 3.5, 10.0, 88.0, 32.66, None]

我们先约定好,将不能转换的值保存为 None,然后编写了一个 safe_float() 的方法进行处理,随后再将这个函数传到 map() 中,这样,最后我们就能得到处理完成后的列表了。

相关文章

  • Python 列表元素字符串转浮点

    在网络爬虫或者读取文件中的数据时,很多时候读取出来的数值是字符串形式的,这些字符串形式的数据并不能用来作计算或者更...

  • Python数据类型—列表

    一 什么是列表 列表由一系列按特定顺序排列的元素组成。元素可以是任何类型,比如字符串,数字,浮点等 ,其中的元素之...

  • 004-Python数据类型讲解

    Python中的数据类型 Python的几种基本的数据类型包括整型、浮点型、字符串、布尔类型、列表(List)、元...

  • 【Python】Python知识点总结

    Python数据类型: 字符串' ', " ": 列表[],list([])(各种元素,通过下表访问元素,类似C语...

  • python 命名元祖

    平常使用的数据类型 数值: 整数,浮点数,布尔类型 序列 : 字符串 ,元素,列表 散列 : 字典 ,集合 (...

  • 004- Python中的数据类型

    文/帅朋 Python的几种基本的数据类型包括整型、浮点型、字符串、布尔类型、列表(List)、元组(Tuple)...

  • 2 列表:一个打了激素的数组

    列表中可以放整型、浮点型、字符串和对象,也可以是这几种类型的混合体 1. 创建列表 2. 向列表添加元素:appe...

  • Python起步——列表

    python列表的常用操作 1. list函数 将元组和字符串转化为列表。 2. 基本列表操作 2.1 元素赋值 ...

  • 魔术方法(对象持久化)

    ### Python内置的数据结构是直接可以被序列化的: 字典、元组、列表、集合、字符串、整形、浮点型、布尔类型。...

  • python的共同语法复习

    python的数据类型 变量 关系运算符 整数(浮点数) 字符串 列表 元组 集合 字典 练习题 选择类型(if,...

网友评论

    本文标题:Python 列表元素字符串转浮点

    本文链接:https://www.haomeiwen.com/subject/oqhtvftx.html