在网站上刷一些题的时候,经常涉及到从键盘的终端输入读取一系列参数,并把相应的参数存储到列表里的情况。

1、Python读取列表的集中方式

Python3 input() 函数:
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
注:在 Python3.x 中 raw_input() 和 input() 进行了整合,去除了 raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

sys.stdin.readline():
sys.stdin.readline()将所有输入视为字符串,并在最后包含换行符’\n’,可以通过sys.stdin.readline().strip(’\n’)去掉换行符。

2、Python代码实现

简单介绍一下,相关的解释在代码注释里已经注释的很清楚了,在这边不做赘述。
test1 把参数读取到一维列表里,分隔符号为逗号或者下划线
test2 把参数一行一行的读取到一个一维列表里
test3 把任意行的参数读取到一个二维列表里,以空字符结束输入
test4 读取输入的n参数,把参数读取到n行的二维列表里

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import sys## 读取参数输入到一个一维列表里,输入参数以逗号“,”或者下划线“_”隔开,中间可能有任意空格,以换行结束输入
## 示例输入:    1,    2_     3,    5_7     ,8
# 输出[1,2,3,5,7,8]
# 值得注意的是:
# Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
# Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。返回类型可能多种def input_test1():## input 进来是str的格式input_data = input()# 对字符串进行初步的处理  ## 去除里面的空格,需要注意replace不会改变原来输入的内容,## String.replace(old, new, count) 加上数量的话只替换前count个no_blank_data = input_data.replace(" ","")no_blank_data = no_blank_data.replace("_",",")   ##多个字符分割提前替换掉# 以逗号为分割符号把字符里的数字存在列表里# input_list_test = no_blank_data.split(",")input_list_test = no_blank_data.split(",")   # 将list里的字符串转换为数字input_list_test = list(map(int,input_list_test))# print(input_list_test)# print(type(input_list_test))# print(type(input_list_test[0]))return input_list_test# 一行一行的进行输入,每结束一行输入就把输入放到列表里去,指定结束符号为"\n"就是一行空的输入
# 示例输入:
# 12334
# 23456
# 12
# 30
#
# 示例输出: [12334, 23456, 12, 30]
def input_test2():lines = []try:while True:# Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。line = sys.stdin.readline().strip()## 指定跳出循环的输出符号,这个地方是一行不输入,直接按回车就会跳出循环if line == '':breakelse:lines.append(line)           except:pass# str转换成int格式lines = list(map(int,lines))return lines#  不指定行数输入多行数据,以空行或者换行符结束,返回一个二维list
def input_test_3():try:two_dimemsional_list = []while True:# Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。row = sys.stdin.readline().strip()if row == '':breakrow_list = list(map(int,row.split()))     ## 输入时,利用map直接映射成int类型two_dimemsional_list.append(row_list)     ## 这边变成extend就可以存储成一个一维数组# two_dimemsional_list = list(map(int,two_dimemsional_list))except:passreturn two_dimemsional_list# 第一行输入指定n行m列,然后输入n*m的数据,数据之间用空格隔开,存储到n*m的一个二维列表里
def input_test_4():n_and_m = input()# 方法1,以空格为分隔符号,自动过滤掉空行  # n_and_m_list = filter(None,n_and_m.split(" "))# 方法2,split()函数默认可以按空格分割,并且把结果中的空字符串删除掉n_and_m_list = n_and_m.split()n = int(n_and_m_list[0])m = int(n_and_m_list[1])two_dimemsional_list = []for i in range(n):row = input().strip()row_list = list(map(int,row.split()))   ## 如果就是需要字符串类型,就不用转换成inttwo_dimemsional_list.append(row_list)i = i + 1return two_dimemsional_listdef main():# input_list_test1 = input_test1()# print(input_list_test1)# input_list_test2 = input_test2()# print(input_list_test2)# input_list_test3 = input_test_3()# print(input_list_test3)input_list_test4 = input_test_4()print(input_list_test4)if __name__ == '__main__':main()

Python读取键盘输入到一维列表及二维列表相关推荐

  1. python键盘输入数组_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  2. python二维数组换行输出_python 二维数组切割Python读取键盘输入的2种方法

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1.raw_input 2.input raw_input函数raw_input() 函数从标准输入读取一个行,并返 ...

  3. python获取键盘输入_python之判断数据异常Python读取键盘输入

    Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: <python之判断数据异常Python读取键盘输入>总结了关于python网站教程,对于我们来www. ...

  4. Python数据分析实战-将一维列表和二维列表内容保存到本地excel文件(附源码和实现效果)

    前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型).同时做了关于图像识别的系列文章,让读者理解python进行图像识别的过程.原理和方 ...

  5. python 二维列表_python二维列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 方法一:使用 lambda 关键词辅助对二维列表进行排序,lambda的使用方法 ...

  6. Python编程基础:第十五节 二维列表2D Lists

    第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...

  7. python读取excel并生成指定列的二维码

    需要导入的包和模块 # 导入二维码生成模块 import qrcode # 导入excel模块 import xlrd # 位置模块 import os安装包方法: pip install XXX(包 ...

  8. python用语句输入一个3*3的二维矩阵_python中二维数组的建立,输入和输出

    ''' for循环: for i in range(x,y,dir): pass 首先这个区间是左闭右开 其次dir在省略的情况下默认为1,就是每次加一,也可以指定 python的数组: python ...

  9. python用循环输入给数组赋值_python二维数组重复赋值问题

    今天在写程序时遇到一个怪异的问题,采用双重for循环对一个二维数组中的每一个元素进行赋值,结果发现,它们的每一列都一起改变了.例子如下: k = 0 a = [[0] * 3] * 3 for i i ...

最新文章

  1. ubuntu apt安装lamp
  2. python画误差棒/带
  3. Java功底之static、final、this、super
  4. 聚合链路出现Destination host unreachable
  5. java 课程设计表达式求值_NYOJ-35-表达式求值
  6. Linux Ubuntu 安装 Matlab
  7. autohotkey编写windows脚本实现test.lab试验数据快速导出
  8. python 测试用例管理 生成_python自动生成接口测试用例
  9. 帆软查询前后鼠标进入到某个位置隐藏或显示参数面板
  10. 经典神经网络 -- RetinaNet的Focal_Loss : 设计原理与pytorch实现
  11. 新版本安装包需求汇总
  12. HashMap为什么是线程不安全的
  13. RSA签名和验签Util
  14. 色差仪确保番茄酱色彩一致性
  15. Linux下查看显卡型号
  16. 楼市回暖有赖于经济复苏
  17. JSON解析错误:无法构建内部类的实例
  18. MultipartFile上传/下载图片
  19. 易风神盾防火墙 v1.0 官方
  20. NVIDIA中文车牌识别系列-3:使用TLT训练车牌号识别LPR模型

热门文章

  1. 基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡226
  2. Anaconda python windows环境安装及完全排坑教程
  3. 小程序官网CMS开源项目出炉,Weixin-App-CMS 1.0 版本正式发布
  4. Java数组:一维数组的定义和赋值
  5. socket error 10053 的可能原因
  6. 认识区块链,认知区块链——百花争鸣
  7. 福建师范大学2022年2月课程考试《形势与政策》作业考核试题
  8. nginx可以用来做什么
  9. vs2017 - vs2012
  10. 自然语言处理--词向量