学生信息系统:

(名字,年龄,性别,邮箱地址)

为了减少存储开支,每个学生的信息都以一个元组形式存放

如:

('tom', 18,'male','tom@qq.com' )

('jom', 18,'mal','jom@qq.com' ) .......

这种方式存放,如何访问呢?

普通方法:

#!/usr/bin/python3

student = ('tom', 18, 'male', 'tom @ qq.com' )
print(student[0])
if student[1] > 12:
...
if student[2] == 'male':
...

出现问题,程序中存在大量的数字index,可阅读性太差,无法知道每个数字代替的含义

如何解决这个问题?

方法1:

#!/usr/bin/python3

# 给数字带上含义,和元组中一一对应
name, age, sex, email = 0, 1, 2, 3
# 高级:name, age, sex, email = range(4)
student = ('tom', 18, 'male', 'tom @ qq.com' )
print(student[name])
if student[age] > 12:
print('True')
if student[sex] == 'male':
print('True')

这样就直白多了,看名字就知道取什么元素

方法2:

  通过 collections库的 nametuple模块

#!/usr/bin/python3

from collections import namedtuple

# 生成一个Student类
Student = namedtuple('Student', ['name', 'age', 'sex', 'email']) # 生成一条信息对象
s = Student('tom', 18, 'male', 'tom@qq.com') # 通过类对象进行取数据
print(s.name, s.age, s.sex, s.email)

最新文章

  1. 【代码笔记】iOS-获取系统完成任务所需的后台时间
  2. canvas 的一些效果
  3. andriod网址
  4. Struts2实现Preparable接口和【struts2】继承ActionSupport类
  5. 使用 PHP 验证表单数据
  6. 【性能测试】【Jmeter】学习(3)——查看测试结果
  7. BZOJ 3314: [Usaco2013 Nov]Crowded Cows( 单调队列 )
  8. ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名
  9. (五)CSS和JavaScript基础
  10. 1.物理系统PhysicsWorld,RayCast
  11. handsontable的基础应用
  12. golang 读书笔记
  13. 小程序——Tab切换
  14. PAT (Basic Level) Practise - 换个格式输出整数
  15. 解决idea创建Maven项目卡在running tmp archetypexxxtmp
  16. netty源码解解析(4.0)-5 线程模型-EventExecutorGroup框架
  17. Mac下 如何配置虚拟机软件Parallel Desktop--超详细
  18. Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable
  19. Struts2 S标签 数目字格式化成金额输出(保留两位小数)
  20. BZOJ1014: [JSOI2008]火星人prefix(splay 二分 hash)

热门文章

  1. 02 . Go开发一个日志收集平台之Context及etcd简单使用
  2. TX-LCN 分布式事务框架
  3. centos6.8上安装部署 jhipster-registry
  4. fprintfAndFscanf简单操作
  5. CobaltStrike与Metasploit联动配合
  6. unity 真机调试
  7. 【C#】Random类中构造方法、时间种子与随机数序列的关系
  8. qdu-凑数题(01背包)
  9. 01_Python基础知识梳理
  10. jenkins打包java maven项目