Python基础 2-2 列表的实际应用场景
引言
本章主要介绍列表在实际应用中的使用场景,多维列表(嵌套列表)
如果你需要在列表保存每个人员的一些基本信息,使用列表嵌套来保存这种信息是个不错的主意。
多维列表
列表可以根据实际情况嵌套使用,比如你想保存两个人的信息,可使用如下方式
[ ['人员1' , '年龄' , '工资'] , [人员2] , [年龄] ,[工资] ... ]
以上多维列表可以很方便的保存每个人的信息,每个索引号对应一个人
嵌套列表使用
将用户录入的字符串信息以特定格式分割成列表保存起来,嵌套到人员列表中
- 定义一个存放人员信息的列表
emp_lost = []
- 使用
split()将字符串分割成列表存到人员列表中
emp_list = [] # 存放人员信息列表
info = input("请录入员工信息(逗号分隔):") # 用户输入字符串
info_list = info.split(",") # 将字符创分隔成列表
emp_list.append(info_list) # 将列表追加到人员列表
print(emp_list) # 打印人员列表
# 运行结果:
'''
请录入员工信息(逗号分隔):张三,22,6000
[['张三', '22', '6000']]
'''
现在已经可以使用嵌套列表了,但实际情况往往不止录入一组员工信息,可能是N组
录入多组人员信息
让用户可以录入多组人员信息
使用循环
emp_list = []
while True: # while 条件为 True 时会一直执行(死循环)
info = input("请录入员工信息(逗号分隔):")
if info == "": # 判断是否录入信息
print("没有录入信息,程序退出") # 给用户提示
break # 中断退出循环
# 如果用户录入信息,继续执行以下代码
info_list = info.split(",") # 将用户录入的字符串按照逗号分割成列表
emp_list.append(info_list) # 把员工信息存入到列表中
print(emp_list) # 打印人员列表
# 运行结果:
'''
请录入员工信息(逗号分隔):张三,22,5000
请录入员工信息(逗号分隔):李四,23,6000
请录入员工信息(逗号分隔):王五,24,7000
请录入员工信息(逗号分隔):
没有录入信息,程序退出
[['张三', '22', '5000'], ['李四', '23', '6000'], ['王五', '24', '7000']]
'''
以上示例已经可以让用户一直录入员工信息了,但是却不是完善的,因为用户可以随便录入几个信息都行,即使只录入一个名称也保存
判断录入格式
这里假设用户需要录入三个信息才是格式正确,“姓名、年龄、工资”
如果录入少了或超过了都是不正确的格式
emp_list = []
while True:
info = input("请录入员工信息(逗号分隔):")
if info == "":
print("没有录入信息,程序退出")
break
info_list = info.split(",")
if len(info_list) != 3: # 判断录入信息是否为三个元素
print("录入格式不正确,请重新录入!") # 提示格式不正确
continue # 跳过以下代码,重新执行循环
emp_list.append(info_list)
print(emp_list) # 退出打印员工列表
# 运行结果:
'''
请录入员工信息(逗号分隔):张三,22,5000
请录入员工信息(逗号分隔):李四,23
录入格式不正确,请重新录入!
请录入员工信息(逗号分隔):李四,23,6000
请录入员工信息(逗号分隔):
没有录入信息,程序退出
[['张三', '22', '5000'], ['李四', '23', '6000']]
'''
以上示例控制了用户输入的格式
格式化输出
以上示例中已经可以成功录入信息并且有控制用户录入的地方了,但是输出的格式却不尽人意,下面就解决这个问题
emp_list = []
while True:
info = input("请录入员工信息(逗号分隔):")
if info == "":
print("没有录入信息,程序退出")
break
info_list = info.split(",")
if len(info_list) != 3:
print("录入格式不正确,请重新录入!")
continue
emp_list.append(info_list)
for emp in emp_list:
emp_info = "姓名:{n} \t 年龄:{a} \t 工资:{s}".format( n=emp[0] , a=emp[1] , s=emp[2]) # 将格式化的信息保存到 emp_info 变量中
print(emp_info) # 打印格式化后的人员信息
# 运行结果:
'''
请录入员工信息(逗号分隔):张三,22,5000
请录入员工信息(逗号分隔):李四,23,6000
请录入员工信息(逗号分隔):王五,24,7000
请录入员工信息(逗号分隔):
没有录入信息,程序退出
姓名:张三 年龄:22 工资:5000
姓名:李四 年龄:23 工资:6000
姓名:王五 年龄:24 工资:7000
'''
本次演示程序的完整代码
上面使用到的 format() 方法为格式化函数,官方文档:
https://docs.python.org/3/library/string.html#formatstrings
Python基础 2-2 列表的实际应用场景的更多相关文章
- 『Python基础-8』列表
『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- Python基础学习Day4 列表的使用方法、range 用法、in用法
一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...
- python基础之02列表/元组/字典/set集合
python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...
- 2015/9/1 Python基础(6):列表
列表和字符串类型很相似,是同样的序列式数据类型.但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器.Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
- python基础数据类型--list列表
列表: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex ...
- Python基础-元组、列表、字典
元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...
- python 基础篇 04(列表 元组 常规操作)
本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...
- python基础学习笔记——列表及元组
列表 列表的介绍 列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 列表的索引和切片 列表和字符串一样也拥有索引: lst = ['刘德华','周润发','周杰伦','向华强 ...
随机推荐
- 73种网页常用Javascript代码
73种网页常用Javascript代码 转载自:前端丶灵魂工程师 1.后退 前进 <input type="button" value="后退" o ...
- 【HTML】HTML标签介绍
1. < 小于号2. > 小于号3. 空格4. <p> </p> 内容作为一个段落5. <br/> 表示换行6. <h1> ...
- Spring applicationContext爆出警告“Resource leak: 'applicationContext' is never closed”
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); 此处applicationCo ...
- [04] HEVD 内核漏洞之IntegerOverflow
作者:huity出处:https://www.cnblogs.com/huity35/p/11252574.html版权:本文版权归作者所有.文章在博客园.看雪.个人博客同时发布.转载:欢迎转载,但未 ...
- java练习---4
//程序员:罗元昊 2017.9.17 今天好累吖咦吖咦吖 package demo;import java.util.Scanner;public class Lk { public static ...
- 输出单链表倒数第K个结点值
#include<iostream>using namespace std;#include<malloc.h>#include<stdio.h>typedef i ...
- VS、C#配置R语言开发环境
R语言学习笔记(一)——在Vs.C#中配置R语言开发环境. 最近在学习小众的R语言,所以将遇到的问题记录下来供大家参考,不足之处欢迎大家交流指正. 至于R语言的介绍就不多说了,它集成了复杂的数学算法, ...
- Could not launch "APP_NAME" process launch failed: 4294967295
真机调试忽然遇到这个问题, Could not launch "APP_NAME" process launch failed: 如图所示: 模拟器上能正常调试………… 这个问题还 ...
- JAVA并发编程之倒计数器CountDownLatch
CountDownLatch 的使用场景:在主线程中开启多线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后汇总返回结果. 我把源码中的英文注释全部删除,写上自己的注释.就剩下 70 行不到的 ...
- Hadoop 系列(二)—— 集群资源管理器 YARN
一.hadoop yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统.用户可以将各种服务框架部 ...