python 读入多行数据

本文介绍如何使用Python从标准输入读取多行不等长的整数数据,直到用户直接按回车停止输入。通过`raw_input()`函数接收输入,并将字符串转换为整数列表。随后填充最短的子列表使其与最长子列表等长,最终形成一个完整的二维矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

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

三、运行结果

      




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值