Python使用raw_input读取多行不定长数据并填充矩阵
本文介绍利用Python的raw_input()函数读取多行不定长数据的方法。通过循环接收输入,以空格分割并转换为整数列表,最终构建二维矩阵。针对不等长子序列,使用指定值进行填充,生成标准的二维数组结构,适用于需要处理非结构化输入的场景。
一、前言
本文主要介绍如何使用Python的raw_input()函数来读取多行不定长的数据。输入的结束条件为在不输入数字的情况下直接按回车键。随后,程序会将读取到的数据填充为特定的数值,从而构成一个二维矩阵。
二、代码
def get2DlistData():
res = []
inputLine = raw_input() #以字符串的形式读入一行
#如果不为空字符串作后续读入
while inputLine != '':
listLine = inputLine.split(' ') #以空格划分就是序列的形式了
listLine = [int(e) for e in listLine ] #将序列里的数由字符串变为int类型
res.append( listLine )
inputLine = raw_input()
return res
def get2DMatData( inList , val ):
'''
输入:inList为不等长的二维数组,val为需填充的值
输出:np.array的形式输出填补完的二维矩阵
'''
maxCols = 0
#获得最大长度的子序列
for i in range( len( inList ) ):
lenI = len( inList[i] )
if lenI > maxCols:
maxCols= lenI
#对每个子序列作填充
for i in range( len( inList ) ):
num = len( inList[i] )
while(num <= maxCols):
inList[i].append( val )
num += 1
return np.array( inList , dtype = np.int64 )
if __name__=='__main__':
inData = get2DimData()
print inData
print '\n'
matArray = get2DMatData(inData , 0)
print( matArray )
三、运行结果

以上这篇关于Python读取多行数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













