引言

本章主要介绍列表在实际应用中的使用场景,多维列表(嵌套列表)
如果你需要在列表保存每个人员的一些基本信息,使用列表嵌套来保存这种信息是个不错的主意。

多维列表

列表可以根据实际情况嵌套使用,比如你想保存两个人的信息,可使用如下方式
[ ['人员1' , '年龄' , '工资'] , [人员2] , [年龄] ,[工资] ... ]
以上多维列表可以很方便的保存每个人的信息,每个索引号对应一个人

嵌套列表使用

将用户录入的字符串信息以特定格式分割成列表保存起来,嵌套到人员列表中

  1. 定义一个存放人员信息的列表
  1. emp_lost = []
  1. 使用 split() 将字符串分割成列表存到人员列表中
  1. emp_list = [] # 存放人员信息列表
  2. info = input("请录入员工信息(逗号分隔):") # 用户输入字符串
  3. info_list = info.split(",") # 将字符创分隔成列表
  4. emp_list.append(info_list) # 将列表追加到人员列表
  5. print(emp_list) # 打印人员列表
  6. # 运行结果:
  7. '''
  8. 请录入员工信息(逗号分隔):张三,22,6000
  9. [['张三', '22', '6000']]
  10. '''

现在已经可以使用嵌套列表了,但实际情况往往不止录入一组员工信息,可能是N组

录入多组人员信息

让用户可以录入多组人员信息

使用循环

  1. emp_list = []
  2. while True: # while 条件为 True 时会一直执行(死循环)
  3. info = input("请录入员工信息(逗号分隔):")
  4. if info == "": # 判断是否录入信息
  5. print("没有录入信息,程序退出") # 给用户提示
  6. break # 中断退出循环
  7. # 如果用户录入信息,继续执行以下代码
  8. info_list = info.split(",") # 将用户录入的字符串按照逗号分割成列表
  9. emp_list.append(info_list) # 把员工信息存入到列表中
  10. print(emp_list) # 打印人员列表
  11. # 运行结果:
  12. '''
  13. 请录入员工信息(逗号分隔):张三,22,5000
  14. 请录入员工信息(逗号分隔):李四,23,6000
  15. 请录入员工信息(逗号分隔):王五,24,7000
  16. 请录入员工信息(逗号分隔):
  17. 没有录入信息,程序退出
  18. [['张三', '22', '5000'], ['李四', '23', '6000'], ['王五', '24', '7000']]
  19. '''

以上示例已经可以让用户一直录入员工信息了,但是却不是完善的,因为用户可以随便录入几个信息都行,即使只录入一个名称也保存

判断录入格式

这里假设用户需要录入三个信息才是格式正确,“姓名、年龄、工资”
如果录入少了或超过了都是不正确的格式

  1. emp_list = []
  2. while True:
  3. info = input("请录入员工信息(逗号分隔):")
  4. if info == "":
  5. print("没有录入信息,程序退出")
  6. break
  7. info_list = info.split(",")
  8. if len(info_list) != 3: # 判断录入信息是否为三个元素
  9. print("录入格式不正确,请重新录入!") # 提示格式不正确
  10. continue # 跳过以下代码,重新执行循环
  11. emp_list.append(info_list)
  12. print(emp_list) # 退出打印员工列表
  13. # 运行结果:
  14. '''
  15. 请录入员工信息(逗号分隔):张三,22,5000
  16. 请录入员工信息(逗号分隔):李四,23
  17. 录入格式不正确,请重新录入!
  18. 请录入员工信息(逗号分隔):李四,23,6000
  19. 请录入员工信息(逗号分隔):
  20. 没有录入信息,程序退出
  21. [['张三', '22', '5000'], ['李四', '23', '6000']]
  22. '''

以上示例控制了用户输入的格式

格式化输出

以上示例中已经可以成功录入信息并且有控制用户录入的地方了,但是输出的格式却不尽人意,下面就解决这个问题

  1. emp_list = []
  2. while True:
  3. info = input("请录入员工信息(逗号分隔):")
  4. if info == "":
  5. print("没有录入信息,程序退出")
  6. break
  7. info_list = info.split(",")
  8. if len(info_list) != 3:
  9. print("录入格式不正确,请重新录入!")
  10. continue
  11. emp_list.append(info_list)
  12. for emp in emp_list:
  13. emp_info = "姓名:{n} \t 年龄:{a} \t 工资:{s}".format( n=emp[0] , a=emp[1] , s=emp[2]) # 将格式化的信息保存到 emp_info 变量中
  14. print(emp_info) # 打印格式化后的人员信息
  15. # 运行结果:
  16. '''
  17. 请录入员工信息(逗号分隔):张三,22,5000
  18. 请录入员工信息(逗号分隔):李四,23,6000
  19. 请录入员工信息(逗号分隔):王五,24,7000
  20. 请录入员工信息(逗号分隔):
  21. 没有录入信息,程序退出
  22. 姓名:张三 年龄:22 工资:5000
  23. 姓名:李四 年龄:23 工资:6000
  24. 姓名:王五 年龄:24 工资:7000
  25. '''

本次演示程序的完整代码

上面使用到的 format() 方法为格式化函数,官方文档:
https://docs.python.org/3/library/string.html#formatstrings

Python基础 2-2 列表的实际应用场景的更多相关文章

  1. 『Python基础-8』列表

    『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  2. .Net程序员之Python基础教程学习----列表和元组 [First Day]

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  3. Python基础学习Day4 列表的使用方法、range 用法、in用法

    一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...

  4. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  5. 2015/9/1 Python基础(6):列表

    列表和字符串类型很相似,是同样的序列式数据类型.但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器.Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种 ...

  6. Python基础数据类型之列表和元组

    一.列表   list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...

  7. python基础数据类型--list列表

    列表: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex ...

  8. Python基础-元组、列表、字典

    元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...

  9. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  10. python基础学习笔记——列表及元组

    列表 列表的介绍  列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 列表的索引和切片 列表和字符串一样也拥有索引: lst = ['刘德华','周润发','周杰伦','向华强 ...

随机推荐

  1. C#开发OPC Client程序

    前一段时间写了一个OPC Client程序,现在将简单介绍一下程序开发方法.测试环境最后将我写的程序开源到Github上去. 一.开发方法 我这里用的是一个OPC动态库OPCAutomation.dl ...

  2. Apache Httpd 启用重定向 rewrite

    1.启用模块 由:#LoadModule rewrite_module modules/mod_rewrite.so 更改为:LoadModule rewrite_module modules/mod ...

  3. python初步编写用户登录

     python初步编写用户登录 python编写用户登录 用python写一个脚本,使得这个脚本在执行后,可以产生如下的效果: 1.用户的账号为:root 密码为:westos 2.用户账号和密码均输 ...

  4. jmeter环境变量

    jmeter环境变量配置jmeter环境变量时,同时也需要配置Java变量(jdk最好使用1.7及1.7以上的版本)1.配置jdk环境变量安装jdk正常安装,一路默认就好,记住安装路径,配置环境变量时 ...

  5. python:函数可以返回值--编写脚本计算24 + 34 / 100 - 1023

    1.脚本 def add(a,b):    return (a+b)def div(a,b,c):    return (a/b-c)x = div(34,100,1023)y = add(24,x) ...

  6. 【MySQL】ON DUPLICATE KEY UPDATE

    之前没用过这个操作,甚至没见过--最近接触到,而且还挺有用. 作用:若 KEY 不重复,则插入记录:否则更新记录. 单条操作: INSERT INTO table(a, b, c) VALUES (1 ...

  7. React Hooks 深入系列 —— 设计模式

    本文是 React Hooks 深入系列的后续.此篇详细介绍了 Hooks 相对 class 的优势所在, 并介绍了相关 api 的设计思想, 同时对 Hooks 如何对齐 class 的生命周期钩子 ...

  8. Web容器启动中执行某个Java类

    1.监听(Listener) <!-- 配置监听 --> <listener> <listener-class>com.xian.jdbc.GetPropertie ...

  9. 记一次使用LR测试UDP和TCP的过程

    背景 最近项目要做性能测试,要出要一份性能报告,让我出一个有关Tcp和Udp的功能模块的测试,流程大概是这样,先走TCP协议协商一下会话,协商成功后走Udp收发数据. 有点简单啊,自己写个功能模块测一 ...

  10. Java 8原生API也可以开发响应式代码?

    前段时间工作上比较忙,这篇文章一直没来得及写,本文是阅读<Java8实战>的时候,了解到Java 8里已经提供了一个异步非阻塞的接口(CompletableFuture),可以实现简单的响 ...