Python将读取到的字符串文本数据转换成数字类型列表和数组

最近在用Python,做一个小脚本,有个操作就是要读取文本框中的内容然后将其转换成数组对象再进行相关操作。但读取到的文本是字符串类型的,所以,得进行一波小操作了嘿。
在这里插入图片描述

🧐下面是获取用tkinter包创建的文本框中所有内容的函数:

text = win_Text1.get('0.0', 'end')  # 获取文本框所有内容
print(text)

🧐这是读取指定路径下文本文件内容的方式:

f = open("D:/tmp/num.txt")
print(f.read())

两者输出都是整个内容的一个字符串数据:

1 2 3
4 5 6
7 8 9
<class ‘str’>


开始操作:

🕐 首先,根据换行符对字符内容进行分隔,得到一个列表对象:

p = text.split('\n')
print(p)
'''输出:
['1 2 3', '4 5 6', '7 8 9']'''

🕑 但是列表里存储的也还是字符串元素,继续操作🧐既然有多个元素,那就用循环各个进行操作:

matrix = []  # 定义一个列表对象
for i in range(len(p)):
    p1 = p[i].split(' ')  # 将列表中每一块的的数字按空格进一步切分成列表
    intp1 = [int(x) for x in p1]  # 使用列表推导试将字符串转换为数字
    # intp1 = list(map(int, p1))  # 方法2 使用map做映射转换为数字
    matrix.append(intp1)  # 将转换后的数字列表追加存入列表
print(matrix)
'''输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]'''

👆成功转换成一个数字类型的列表。

🕒 既然列表有了,那数组就简单了,直接用numpy包的arrray方法生成数组对象。

a = np.array(matrix)
print(a)
'''输出:
[[1 2 3]
 [4 5 6]
 [7 8 9]]'''

好了 以上就是我的转换思路,即,字符串→字符串列表→数字列表→数组(矩阵)

但是,我的最终目的是得到数组(矩阵)对象,中间的过程是不是可以省略了?好料,后面我真发现了一个函数,可以将字符串直接转换成数组(矩阵)。如下:

f = open("D:/tmp/num.txt")
text = f.read()
p = text.replace('\n', ';')
a = np.mat(p)
print(a)
'''输出:
[[1 2 3]
 [4 5 6]
 [7 8 9]]'''

对就是用numpy包中的mat()方法,按分号和空格将字符串转换成数组,这样就可以省去好的行代码了。

虽然方法好用 但是自己思考进行转换设计不更有趣嘿😀
勤学勤练勤思考,天天向上少不了!
🕓🕔🕕🕖🕗🕘🕙🕚🕛

  • 12
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值