Python的多行输入与多行输出

2023-11-17

因为在OJ上做编程,要求标准输入,特别是多行输入。特意查了资料,自己验证了可行性。


   
   
  1. if __name__ == "__main__":
  2. strList = []
  3. for line in sys.stdin: #当没有接受到输入结束信号就一直遍历每一行
  4. tempStr = line.split() #对字符串利用空字符进行切片
  5. strList.extend(tempStr) #把每行的字符串合成到列表

 Q1:系统如何判断输入结束?

A:按下换行键然后Ctrl+d结束。

Q2:split()的作用?

A:str.split(str="", num=string.count(str)).

      split()通过指定分隔符对字符串进行切片,并返回切片结果。

       str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

       num -- 分割次数。

Q3:为什么选择list.extend()而不是list.append(),这两者有何区别?

 A:extend()是将新对象的内容添加到列表,append()是将新对象整体添加到列表。如下图:


   
   
  1. list1 = [ 1, 2, 3]
  2. list2 = [ 4, 5, 6]
  3. list1.append(list2)

输出是:


   
   
  1. list1 = [ 1, 2, 3]
  2. list2 = [ 4, 5, 6]
  3. list1.extend(list2)

输出是:

     所以看程序的需求选择。

一、前言

      本文主要使用python 的raw_input() 函数读入多行不定长的数据,输入结束的标志就是不输入数字情况下直接回车,并填充特定的数作为二维矩阵

二、代码


 
 
  1. def get2DlistData():
  2. res = []
  3. inputLine = raw_input() #以字符串的形式读入一行
  4. #如果不为空字符串作后续读入
  5. while inputLine != '':
  6. listLine = inputLine.split( ' ') #以空格划分就是序列的形式了
  7. listLine = [int(e) for e in listLine ] #将序列里的数由字符串变为int类型
  8. res.append( listLine )
  9. inputLine = raw_input()
  10. return res
  11. def get2DMatData( inList , val ):
  12. '''
  13. 输入:inList为不等长的二维数组,val为需填充的值
  14. 输出:np.array的形式输出填补完的二维矩阵
  15. '''
  16. maxCols = 0
  17. #获得最大长度的子序列
  18. for i in range( len( inList ) ):
  19. lenI = len( inList[i] )
  20. if lenI > maxCols:
  21. maxCols= lenI
  22. #对每个子序列作填充
  23. for i in range( len( inList ) ):
  24. num = len( inList[i] )
  25. while(num <= maxCols):
  26. inList[i].append( val )
  27. num += 1
  28. return np.array( inList , dtype = np.int64 )
  29. if __name__== '__main__':
  30. inData = get2DimData()
  31. print inData
  32. print '\n'
  33. matArray = get2DMatData(inData , 0)
  34. print( matArray )

三、运行结果

      




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python的多行输入与多行输出 的相关文章

  • PyQt5 的textedit下的setPlainText()和setText区别

    setPlainText 是纯文本显示 setText 是可以设置为纯文本之外 还可以设置为一些简单的html格式的字符串 当然这些字符串是修饰一个字符串的
  • maven报错You must specify a valid lifecycle phase or a goal in the format

    解决 pom xml文件 标签里面加上
  • golang 解决模块化下载慢、下载失败timeout

    1 在idea编辑器中配置go语言模块化代理 2 配置环境变量 export GOPROXY https goproxy io 然后再执行go get或者直接运行
  • java中的二维数组_Java编程中二维数组的初始化和基本操作实例

    Java二维数组的声明和初始化 1 二维数组可以看成以数组为元素的数组 2 Java中二维数组的声明和初始化应按照从高维到低维的顺序进行 实例 静态初始化 Array2 java 程序代码 public class Array2 publi
  • 浅谈Hadoop体系和MPP体系

    浅谈Hadoop体系和MPP体系 引言 如题 在大数据发展至今 为了应对日益繁多的数据分析处理 和解决客户各种奇思妙 怪 想需求 形形色色的大数据处理的框架和对应的数据存储手段层出不穷 有老当益壮的Hadoop体系 依靠Hadoop巨大的社
  • 基于STM32和EV1527的无线接收解码程序

    一 1527的数据帧结构 无线遥控的编码 从编码类型上来说 分为2类 一类是固定码 也就是编码芯片的地址是不变的 芯片型号以 EV1527 PT2262 为代表 另一种是滚动码 芯片的地址码是变化的 芯片以HS300 HS301为代表 1
  • 数据结构顺序栈C++实现

    栈 先入后出 根据存储方式可以分为顺序栈和链式栈 顺序栈的存储基于数组 链式栈的存储基于链表 关于链表的实现可以参考上一篇博客 https blog csdn net Brillian123 article details 12354964
  • 模糊控制理论基础

    模糊控制理论基础 模糊控制的定义 模糊控制器的输出是通过观察过程的状态和一些如何 控制过程的规则的推理得到的 它包括测量信息的模糊化 推理机制 输出模糊集的精确化 1 模糊集合 普通集合 具有某种特定属性的对象的全体 确定性 模糊集合 隶属
  • 机器视觉运动控制一体机应用例程(十一)产品全局外观检测

    前面讲述的外观检测的课程中 我们都是以矩形ROI区域框选我们需要检测的外观表面范围 但是很多产品外形通常都不是规则的矩形或者圆形 用矩形或者圆形ROI区域很难对产品的外观进行全局检测 可能会遗漏掉某些细节部分 因此 我们引入了将提取的产品轮
  • 全景解密量子信息技术:高层集中学习,国家战略,三大领域一文看懂

    来源 智东西 内参来源 中国信通院 IPRdaily中文网 10月16日下午 高层就量子科技研究相关前景举行了一次会议 强调当今世界正经历百年未有之大变局 科技创新是其中一个关键变量 要充分认识推动量子科技发展的重要性 加强量子科技发展战略
  • numpy之索引和切片

    索引和切片 一维数组 一维数组很简单 基本和列表一致 它们的区别在于数组切片是原始数组视图 这就意味着 如果做任何修改 原始都会跟着更改 这也意味着 如果不想更改原始数组 我们需要进行显式的复制 从而得到它的副本 copy import n
  • json转xml、xml转json

    一 jar包 所需jar包 二 xml2json 方法一 使用json lib 代码 public String xml2json String xml 创建XMLSerializer对象 XMLSerializer xmlSerializ
  • 计算机房面积标准,机房建设标准与规范[共14页].pdf

    电子信息系统机房设计规范 施行日期 2009 年 6 月 1 日 1 总则 1 0 1 为规范电子信息系统机房设计 确保电子信息系统安全 稳定 可靠地运行 做到技术先进 经 济合理 安全适用 节能环保 制定本规范 1 0 2 本规范适用于建
  • GPU工作原理与理解

    本周看GPU看得有点儿乱 GPU英文全称Graphic Processing Unit 中文翻译为 图形处理器 由于GPU具有高并行结构 highly parallel structure 所以GPU在处理图形数据和复杂算法方面拥有比CPU
  • linux并行计算环境搭建与使用,Windows和Linux系统下并行计算环境MPI和OpenMP的搭建...

    windows平台下在Visual Studio2019配置MPI环境 MPI下载安装 项目配置 右击项目 gt 属性 进行配置 右上角 gt 配置管理器 gt 活动解决方案平台 选择 x64 VC 目录 gt 包含目录 添加 C Prog
  • CUDA 矩阵乘法优化

    矩阵乘法 为了单纯起见 我们这里以方形的矩阵为例子 基本上 假设有两个矩阵 A 和 B 则计算 AB C 的方法如下 for j 0 j lt n j C i j 0 for k 0 k lt n k C i j A i k B k j 一
  • python安装包国内镜像,pip使用国内镜像

    目录 python 安装包镜像 pip下载时使用国内镜像 python 安装包镜像 下载python安装包和pip下载第三方库时 由于一些客观原因 下载外网文件速度很慢 这时可以使用淘宝镜像下载 http npm taobao org mi
  • Qt *.pro文件的INCLUDEPATH和LIBS写法

    Qt pro文件的INCLUDEPATH和LIBS写法 一般的通用 如图所示 INCLUDEPATH usr local qwt 6 1 3 include INCLUDEPATH include LIBS L usr local qwt
  • 基于nginx的tomcat负载均衡和集群(超简单)

    今天看到 基于apache的tomcat负载均衡和集群配置 这篇文章成为javaEye热点 略看了一下 感觉太复杂 要配置的东西太多 因此在这里写出一种更简洁的方法 要集群tomcat主要是解决SESSION共享的问题 因此我利用memca
  • OpenCV的使用——读取、写入和显示图像

    代码 import the cv2 library import cv2 The function cv2 imread is used to read an image Read an image img color cv2 imread

随机推荐

  • Java JDBC连接数据库 查询SELECT

    package com edu import java sql public class jdbctest public static void main String args throws SQLException ClassNotFo
  • ubuntu 查看显卡命令

    要查看 Ubuntu 系统中的显卡信息 可以使用如下命令 lspci grep VGA 这条命令可以列出系统中所有的显卡设备 lshw c video 这条命令可以列出系统中的所有显卡信息 包括型号 芯片厂商和其他详细信息 glxinfo
  • Android颜色透明度(不透明度)对应的十六进制

    颜色值 AARRGGBB 透明度百分比和十六进制对应关系 下面是透明度 再加上平常写得颜色值就表示该颜色值多少透明度了 一 一张表格 基本都概括 方便查找和使用 透明度 十六进制 100 FF 99 FC 98 FA 97 F7 96 F5
  • 计算机操作系统实验三 进程间的通信

    一 实验目的 1 了解什么是管道 2 熟悉UNIX LINUX支持的管道通信方式 3 了解什么是消息 4 熟悉消息传送的机理 二 实验内容 1 编写程序实现进程的管道通信 用系统调用pipe 建立一管道 二个子进程P1和P2分别向管道各写一
  • 数字图像处理 在小波域中分析信号和图像

    一 简述 小波变换是用于分析特征在不同尺度上变化的数据的数学工具 对于信号 特征可以是随时间变化的频率 瞬态或缓慢变化的趋势 对于图像 特征包括边缘和纹理 小波变换主要是为了解决傅立叶变换的局限性而创建的 傅立叶分析是将信号分解为特定频率的
  • sql如何取出前面3行的数据

    sql中如何取出前面3行的数据 用limit 3限制就好 SELECT from tmp test1 order by share desc LIMIT 3 得到结果集
  • Java基础——Java中的枚举类(深入理解,配合代码学习更轻松)

    Java中的枚举类 枚举类的使用 类的对象只有有限个 确定的 比如 星期 一 二三 四 五 六 日 当需要定义一组常量时 强烈建议使用枚举类 配合代码来理解一下 自定义枚举类 JDK5 0之前的版本采用的方式 package com hau
  • 再读红宝书(第四版) 第五章 基本引用类型

    引用值 或者对象 是某个特定引用类型的实例 在 ECMAScript 中 引用类型是把数据和功能组织到一起的结构 经常被人错误地称作 类 虽然从技术上讲 JavaScript 是一门面向对象语言 但ECMAScript 缺少传统的面向对象编
  • 点亮LED实现按住不亮,松手点亮

    include
  • pandas导出到Excel报URLS数量超出65530警告

    今天在整理数据时报警告 gt gt gt df all to excel xxxx xlsx index False home microfat local lib python3 6 site packages xlsxwriter wo
  • 最新数据库流行度最新排名(每月更新)

    2023年09月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多 这个数据库就被认为越受欢迎 这是一个领先指标 原始数据来自谷歌Trends 如果您相信集体智慧 那么
  • LVMforLinux测试报告(转)

    LVMforLinux测试报告 转 more 一 测试系统环境 系统平台 Red Hat Linux Advanced Server 2 1 内核版本 2 4 18 服务器 DELL 6300 LVM内核支持版本 1 0 1 LVM工具版本
  • Pandas知识点-合并操作merge

    Pandas知识点 合并操作merge merge 方法是Pandas中的合并操作 在数据处理过程中很常用 本文介绍merge 方法的具体用法 一 基础合并操作 merge left right 将两个DataFrame或Series合并到
  • buck变换器设计matlab_【原创】24V开关电源分析与设计、纹波抑制之等效串联电阻与并联电容(上)...

    文章来自电子星球APP 24V开关电源分析与设计 纹波抑制之等效串联电阻与并联电容 作者 张东辉 此篇文章的核心是探讨降压开关电源分析与纹波抑制的相关问题 如有疑问 欢迎到评论区里留言 谢谢 我已将本文涉及资料Buck 24V for Ps
  • java中switch语句用法详解

    1 switch语句的基本语法 int week switch week week为定义的变量 case case 之后使用空格再加 满足week的值 执行语句 当满足此case 中的条件时 所要执行的语句 case 执行语句 defaul
  • Vue2 使用el-table-infinite-scroll

    为什么要使用el table infinite scroll 列表数据太多 后端又不好分页 一次性加载大量的数据渲染视图会导致页面卡顿 这时候就需要用到el table infinite scroll来 分批 渲染 如 进入页面先渲染视图可
  • ETest快速测试:零代码!无门槛!上手快!

    时长10 01 视频演示 ETest快速测试 在完整的软件项目开发周期中 软件测试工作占了一半以上的时间 随着软件功能越来越复杂 代码量成倍增加 软件开发 升级 迭代的周期越来越短 传统高成本的测试方式已无法满足软件开发的需求 快速测试可以
  • 虚拟机中对象的内存分配的两种方式

    创建对象必然要在虚拟机中分配内存 虚拟机提供了两种策略 指针碰撞和空闲列表 指针碰撞法 很容易理解 在内存中 一遍是已经被分配的空间 一遍的未分配的空间 如果新建了8字节对象 那么指针就往未分配空间移动8字节 所以使用这种方式的关键是保证分
  • office2021与365你还在纠结吗?快来看看

    有不少小伙伴跟我说自己用的 Office 存在各种问题 比如字体颜色下拉菜单点不动 文件打不开 或者经常卡顿 闪退等 出现这些问题 多半是因为装了盗版 Office 或者没有将 Office 更新至最新版 所以 解决这些问题的根本方法还是使
  • Python的多行输入与多行输出

    因为在OJ上做编程 要求标准输入 特别是多行输入 特意查了资料 自己验证了可行性 if name main strList