加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

python中如何用split函数进行数据类型转变

发布时间:2023-06-14 11:08:02 所属栏目:语言 来源:
导读:这篇文章给大家介绍了“python中如何用split函数进行数据类型转换”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。不知道大

这篇文章给大家介绍了“python中如何用split函数进行数据类型转换”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。

不知道大家有没有过需要从txt文件中读取含有多行多列的数据的经历,当我们读入数据时,数据会以string的形式被读入,然而如何进行数据类型转换就成了大的问题。

这里介绍一种最简单的方式和容易产生的错误使用方法。

我们使用如下代码读取文件,使用readlines()一次性将所有数据全部读取。

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:

all_data = f.readlines()

print(all_data)

# ['6.317438621610765E-05 6.123920173773844E-05 0.00010382572761752979\n', '0.00010819194873178063 8.848784016828921E-05 0.0002043378699454479\n', '9.79660835582763E-05 9.750829986943346E-05 0.00021506758227284687']

我们不难发现这时我们的所有数据都被读入了同一行,但是内部有三个单引号括起来的部分,与我们测试数据中的三行吻合。

我们也可以看到,我们需要将这些数据分成单独的string,然后我们就可以使用例如float关键字对这些数据进行类型转换。

我们看到数据之间是通过空格来分开的。我们第一时间想到我们应该使用.split(" ")方法以空格将数据分开。

我们尝试以下代码

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:

all_data = f.readlines()

all_data = all_data[0].split(" ")

print(all_data)

# ['6.317438621610765E-05', '', '6.123920173773844E-05', '', '0.00010382572761752979\n']

首先我们需要选取第一行,使用all_data[0],然后再使用split(" ")函数分开它们。

我们成功达到了目的,但是我们同时引入了""空字符串项和末尾处\n的隐患,很是棘手。

这么做我们就进入了误区。

正确地做法如下

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:

all_data = f.readlines()

all_data = all_data[0].split()

print(all_data)

# ['6.317438621610765E-05', '6.123920173773844E-05', '0.00010382572761752979']

我们使用split()函数时不添加任何参数,这样就一次性去掉了""空字符串项和末尾处\n的隐患还同时分开了各个字符串。

如果需要输出多行的结果,我们可以预先定义一个数组,用来存放我们的数据,完整代码如下:(以后所有的多行多列数据均可以如此读入)

方法一:将数据以二维列表形式读入

array2d = []

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:

all_data = f.readlines()

for i in range(len(all_data)):

temp_list = []

for element in all_data[i].split():

temp_list.append(float(element))

array2d.append(temp_list)

print(array2d)

#[[6.31743862e-05, 6.12392017e-05, 0.000103825728],

# [0.000108191949, 8.84878402e-05, 0.00020433787],

# [9.79660836e-05, 9.75082999e-05, 0.000215067582]]

方法二:将数据以二维数组形式读入

import numpy as np

array = np.zeros((3, 3))

with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f:

all_data = f.readlines()

for i, line in enumerate(all_data):

numbers = line.split()

for j, element in enumerate(numbers):

array[i, j] = float(element)

print(array)

# [[6.31743862e-05 6.12392017e-05 1.03825728e-04]

# [1.08191949e-04 8.84878402e-05 2.04337870e-04]

# [9.79660836e-05 9.75082999e-05 2.15067582e-04]]

“python中如何用split函数进行数据类型转换”的内容就介绍到这里了,感谢大家的阅读。

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章