import numpy as np def get2DlistData(): res = [] inputLine = input() #以字符串的形式读入一行 #如果不为空字符串作后续读入 while inputLine != '': listLine = inputLine.split(' ') #以空格划分就是序列的形式了 listLine = [int(e) for e in listLine ] #将序列里的数由字符串变为int类型 res.append( listLine ) inputLine=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 = get2DlistData() print (inData) print ('n') matArray = get2DMatData(inData, 0) print( matArray )
123 23 12
12 23 1
21
[[123, 23, 12], [12, 23, 1], [21]]
[[123 23 12]
[ 12 23 1]
[ 21 0 0]]