1. 程式人生 > >python 讀入多行資料

python 讀入多行資料

一、前言

      本文主要使用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 )   

三、執行結果