Python 基础 2-2 列表的实际应用场景
程序员文章站
2022-06-24 08:23:33
引言 本章主要介绍列表在实际应用中的使用场景, 多维列表(嵌套列表) 如果你需要在列表保存每个人员的一些基本信息,使用列表嵌套来保存这种信息是个不错的主意。 多维列表 列表可以根据实际情况嵌套使用,比如你想保存两个人的信息,可使用如下方式 以上多维列表可以很方便的保存每个人的信息,每个索引号对应一个 ......
引言
本章主要介绍列表在实际应用中的使用场景,多维列表(嵌套列表)
如果你需要在列表保存每个人员的一些基本信息,使用列表嵌套来保存这种信息是个不错的主意。
多维列表
列表可以根据实际情况嵌套使用,比如你想保存两个人的信息,可使用如下方式
[ ['人员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()
方法为格式化函数,官方文档: