gpt4 book ai didi

Python Split 特定案例处理

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:09 25 4
gpt4 key购买 nike

几个数字即使使用split函数也没有拆分

707 K   -7 -7 -6 -8 -2 -5 -8 -8  2 -5 -4 -7 -6  6 -8 -6 -7 -4  8 -6
708 L 0 0 -2 -3 -3 1 3 -3 0 -1 -3 4 -2 -5 -2 0 0 -3 -2 0
709 V -7-10 -9-10 12 -9-10 -9 -9 -8 -8 -9 -8 -9 -9 -5 -7 -9 -4 -7
710 P -1 -2 2 1 -2 1 2 -1 1 -4 -4 2 -3 -4 3 1 0 -1 -3 -4
711 E -3 -3 -3 1 -6 1 5 -3 2 0 -1 -1 -1 -1 -5 -2 -1 -4 0 0
712 C -7-10 -9-10 12 -9-10 -9 -9 -8 -8 -9 -8 -9 -9 -4 -7 -9 -9 -7
713 S -4 -4 1 1 -5 -2 -1 6 -1 -8 -7 -3 -7 -4 -2 -1 -3 -4 -4 -7

这个矩阵来自一个文本文件并且非常大(无论是文件中的行数还是此类文件的数量)。

我成功地读取了 python 中的行并将它们拆分为

m = fp.readline(); [fp is the file pointer and reading is done in loop]

m = m.split() ; [splitting by elements ]

m = map(int,m[2:22]); [ mapping to make strings as integers from index 2 to 22 ]

但这给出了第 709 行和第 712 行的错误(参见矩阵的最左侧)

Traceback (most recent call last):
File "<pyshell#150>", line 1, in <module>
map(int,m[2:22].split())
ValueError: invalid literal for int() with base 10: '-7-10'

这是因为文件中的格式错误导致 '-7-10' 没有按预期拆分 '-7' '-10'。

所以问题是我如何处理这个格式错误,以便像矩阵中的其他行一样拆分和处理整数?请记住,对于非常大的行和文件必须这样做,因此手动编辑格式错误是不可行的,尽管单个文件中的此类错误在 100 以内。请帮助我...谢谢

最佳答案

您可以对所有负号执行替换,以确保它们前面至少有一个空格:

m = "-7-10 -9-10 12 -9-10 -9 -9 -8 -8 -9 -8 -9 -9 -5 -7 -9 -4 -7"
print m.replace("-", " -").split()

结果:

['-7', '-10', '-9', '-10', '12', '-9', '-10', '-9', '-9', '-8', '-8', '-9', '-8', '-9', '-9', '-5', '-7', '-9', '-4', '-7']

当然,这只有在它是一个与它的邻居相邻的负数时才有用。如果您有冲突的值,例如:

707 K   -1 -2 -3
707 K -4123 -6

那么你就不能轻易地将 -4 与 123 分开。

关于Python Split 特定案例处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com