Python的多行输入与多行输出

因为在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 )

三、运行结果

      




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务Dubbo和SpringCloud架构设计、优劣势比较

一、微服务介绍 微服务架构是互联网很热门的话题&#xff0c;是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务&#xff0c;服务之间互相协调、互相配合&#xff0c;为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案&#xff0c;但业界…

搜索引擎核心技术与算法 —— 词项词典与倒排索引优化

一只小狐狸带你解锁NLP/ML/DL秘籍作者&#xff1a;QvQ老板&#xff5e;我会写倒排索引啦&#xff01;我要把它放进咱们自研搜索引擎啦&#xff01;我呸&#xff01;你这种demo级代码&#xff0c;都不够当单元测试的&#xff01;嘤嘤嘤&#xff0c;课本上就是这样讲的呀?!来来&…

论文浅尝 | Distant Supervision for Relation Extraction

Citation: Ji,G., Liu, K., He, S., & Zhao, J. (2017). Distant Supervision for RelationExtraction with Sentence-Level Attention and Entity Descriptions. Ai,3060–3066.动机关系抽取的远程监督方法通过知识库与非结构化文本对其的方式&#xff0c;自动标注数据&am…

使用sklearn做单机特征工程

目录 1 特征工程是什么&#xff1f;2 数据预处理  2.1 无量纲化    2.1.1 标准化    2.1.2 区间缩放法    2.1.3 标准化与归一化的区别  2.2 对定量特征二值化  2.3 对定性特征哑编码  2.4 缺失值计算  2.5 数据变换  2.6 回顾3 特征选择  3.1 Filte…

【JavaWeb】JDBC的基本操作和事务控制+登录和转账案例

1 JDBC操作数据库 1.1 连接数据库 首先导入jar包到lib public class JdbcDemo1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取数据库连接对象Connection…

Restful、SOAP、RPC、SOA、微服务之间的区别

一、介绍Restful、SOAP、RPC、SOA以及微服务 1.1、什么是Restful&#xff1f; Restful是一种架构设计风格&#xff0c;提供了设计原则和约束条件&#xff0c;而不是架构&#xff0c;而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务。 主要的设计原则&#xf…

详解深度语义匹配模型DSSM和他的兄弟姐妹

一只小狐狸带你解锁NLP/ML/DL秘籍正文作者&#xff1a;郭耀华正文来源&#xff1a;https://www.cnblogs.com/guoyaohua/p/9229190.html前言在NLP领域&#xff0c;语义相似度的计算一直是个难题&#xff1a;搜索场景下Query和Doc的语义相似度、feeds场景下Doc和Doc的语义相似度、…

行业新闻 | 阿里发力知识图谱研究 悉数囊括顶尖学者探讨合作

12 月 20 日&#xff0c;阿里巴巴联合中国中文信息学会语言与知识计算专委会(KG专委)举办的知识图谱研讨会在杭州召开。研讨会由阿里巴巴集团副总裁墙辉&#xff08;花名&#xff1a;玄难&#xff09;主持&#xff0c;国内知识图谱领域多位顶级专家参加此次研讨会。在阿里巴巴持…

【JavaWeb】JDBC优化 之 数据库连接池、Spring JDBC

1 数据库连接池 为什么要使用数据库连接池&#xff1f; 数据库连接是一件费时的操作&#xff0c;连接池可以使多个操作共享一个连接使用连接池可以提高对数据库连接资源的管理节约资源且高效 概念&#xff1a;数据库连接池其实就是一个容器&#xff0c;存放数据库连接的容器…

Java远程通讯技术及原理分析

在分布式服务框架中&#xff0c;一个最基础的问题就是远程服务是怎么通讯的&#xff0c;在Java领域中有很多可实现远程通讯的技术&#xff0c;例如&#xff1a;RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等&#xff0c;这些名词之间到底是些什么关系呢&#xff0c;它们背…

CUDA层硬件debug之路

前记 众所周知&#xff0c;夕小瑶是个做NLP的小可爱。 虽然懂点DL框架层知识&#xff0c;懂点CUDA和底层&#xff0c;但是我是做算法的哎&#xff0c;平时debug很少会遇到深度学习框架层的bug&#xff08;上一次还是三年前被pytorch坑&#xff09;&#xff0c;更从没遇到过CUDA…

研讨会 | 知识图谱大咖云集阿里,他们都说了啥

前言12月20日&#xff0c;由阿里巴巴联合中国中文信息学会语言与知识计算专委会(KG专委)举办的知识图谱研讨会在杭州召开。研讨会由阿里巴巴集团副总裁墙辉&#xff08;玄难&#xff09;主持&#xff0c;知识图谱领域国内知名专家参与了此次研讨。在阿里巴巴持续发力知识图谱这…

置信区间、P值那点事

在假设检验中&#xff0c;我们常常看到跟P值形影不离的一对区间值&#xff0c; 就是大名鼎鼎的置信区间了。 这置信区间和P值是怎么得来的&#xff0c;我想大多数盆友都不会有什么直观的概念&#xff0c;只会注意P值是否小于0.05或者0.01(根据显著性水平确定)。为了给大伙说清楚…

【JavaWeb】HTML+CSS

1 Web概念概述 JavaWeb是使用Java语言开发基于互联网的项目 软件架构 cs架构&#xff1a;优点【资源加载快、用户体验好】、缺点【安装、部署、维护麻烦】bs架构&#xff1a;优点【开发、安装、部署、维护简单】、缺点【应用过大&#xff0c;用户体验会受影响、对硬件有要求…

深度推荐系统2019年度阅读收藏清单

一只小狐狸带你解锁NLP/ML/DL秘籍正文来源&#xff1a;深度传送门今天是2020年新年工作第一天&#xff0c;祝大家开工大吉&#xff0c;新的一年一切顺利&#xff0c;诸事躺赢&#xff01;深度传送门也跟很多号主一样&#xff0c;花了点时间分类整理了一下阅读清单&#xff08;包…

手把手教你协方差分析的SPSS操作

手把手教你协方差分析的SPSS操作 2017-04-27 手把手教你协方差分析的SPSS操作 一、问题与数据 某研究将73例脑卒中患者随机分为现代理疗组&#xff08;38例&#xff09;和传统康复疗法组&#xff08;35例&#xff09;进行康复治疗&#xff0c;采用Fugl-Meyer运动功能评分法&a…

我对DevOps的理解

一、DevOps的意图 究竟什么是DevOps? 要想回答这个问题&#xff0c;首先要明确DevOps这个过程参与的人员是谁&#xff1f;即开发团队和IT运维团队&#xff01;那么&#xff0c;DevOps的意图是什么呢&#xff1f;即在两个团队之间&#xff0c;建立良好的沟通和协作&#xff0c;…

【JavaWeb】JavaScript基础篇+高级篇

文章目录1 介绍2 ECMAScript2.1 基本语法2.2 基本对象3 BOM3.1 window窗口对象3.2 location地址栏对象3.3 history历史记录对象4 DOM4.1 概念4.2 核心DOM4.2.1 Document对象4.2.2 Element对象4.2.3 节点对象4.2.4 案例&#xff1a;动态表格4.2.5 内容切换4.2.6 样式设置5 事件5…

万万没想到,我的炼丹炉玩坏了

一只小狐狸带你解锁NLP/ML/DL秘籍作者&#xff1a;夕小瑶前记众所周知&#xff0c;夕小瑶是个做NLP的小可爱。虽然懂点DL框架层知识&#xff0c;懂点CUDA和底层&#xff0c;但是我是做算法的哎&#xff0c;平时debug很少会遇到深度学习框架层的bug&#xff08;上一次还是三年前…

Reactor三种线程模型与Netty线程模型

一、Reactor三种线程模型 1.1、单线程模型 单个线程以非阻塞IO或事件IO处理所有IO事件&#xff0c;包括连接、读、写、异常、关闭等等。单线程Reactor模型基于同步事件分离器来分发事件&#xff0c;这个同步事件分离器&#xff0c;可以看做是一个单线程的while循环。下图描述了…