我一直在使用python,我是所有这些语言的新手。香港专业教育学院一直在努力使列表成为数组,然后在每行上给出最高价值。
现在这个信息来自txt,到目前为止我所拥有的是:
import re
from numpy import *
filesis= open("/home/ana/Escritorio/Python/CATALOGO_NIC_MW (otra copia).txt")
filelines= filesis.readlines()
magn1, magn2, magn3= [],[], [], []
for reader in filelines:
mag1=(((re.sub(r'[^0-9|.]', r'.00', (reader[56:59])))))
magn1=(mag1[0:3])
#****************************************************
mag2=(((re.sub(r'[^0-9|.]', r'.00 ', (reader[64:67])))))
magn2=(mag2[0:3])
#****************************************************
mag3=(((re.sub(r'[^0-9|.]', r'.00 ', (reader[72:75])))))
magn3=(mag3[0:3])
#****************************************************
for index in range(len(magnitud1)):
magnitudes.append([magnitud1[index],magnitud2[index],magnitud3[index]])
print magnitudes
但我的输出如下:
[['5', '6', '6']]
[['5', '6', '6'], ['.', '.', '.']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'],['5', '1', '1']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['6', '6', '6']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['6', '6', '6'], ['.', '.', '.']]
[['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['5', '6', '6'], ['.', '.', '.'], ['5', '1', '1'], ['6', '6', '6'], ['.', '.', '.'], ['5', '8', '8']]
很抱歉很长的帖子,但我想告诉你它的样子。
1522 0 0 0 0 0.00 11.830 -86.980 5.0 NIC 0 5.5SCAL 6.1WCAL 6.1WXXX1
1524 0 0 0 0 0.00 11.950 -86.150 5.0 NIC 0 5.5SCAL 6.1WCAL 6.1WXXX1
1527 0 0 0 0 0.00 12.600 -86.860 5.0 NIC 0 5.5SCAL 6.1WCAL 6.1WXXX1
1528 5 0 0 0 0.00 12.400 -86.800 33.0 NIC 0 6.5SCAL 6.8WCAL 6.8WXXX1
5.5SCAL 6.1WCAL 6.1WXXX1
5.5SCAL 6.1WCAL 6.1WXXX1
5.5SCAL 6.1WCAL 6.1WXXX1
6.5SCAL 6.8WCAL 6.8WXXX1
信息来自上面的文本文件,然后在下面你会看到最后三行是我的信息来源。
magnitude=[[5.5],[6.1],[6.1]]
[5.5],[6.1],[6.1]
[5.5],[6.1],[6.1]
[6.5],[6.8],[6.8]]
magnitude=[[6.1]]
[6.1]
[6.1]
[6.8]]
我希望有一个类似magnitude
的数组,然后获得数组中每一行的最高值,如上所示。
任何帮助都非常感谢!
答案 0 :(得分:0)
您的源看起来像TSV(制表符分隔值)或使用固定宽度列的文本文件。如果是TSV,请查看csv
模块。如果它使用固定宽度的文本格式,只需遍历文件并使用字符串切片来获取所需的值。我不知道你为什么使用正则表达式,但我猜你使用的是错误的表达式。
当你设法从文件中获取一个二维数组时,内置函数max
将返回一个可迭代的最大项。
>>> max([[5.5],[6.1],[6.1]])
[6.1]
所以你可以这样做:
>>> [max(line) for line in magnitude]