python_如何为元组中每个元素命名

学生信息系统:

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

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

如:

(‘tom‘, 18,‘male‘,‘[email protected]‘ )

(‘jom‘, 18,‘mal‘,‘[email protected]‘ ) .......

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

普通方法:

#!/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‘, ‘[email protected]‘)

# 通过类对象进行取数据
print(s.name, s.age, s.sex, s.email)
时间: 2024-12-16 11:03:42

python_如何为元组中每个元素命名的相关文章

python学习--为元组中每个元素命名

官方文档:namedtuple():命名元组函数赋予元组中每个位置的含义,并允许更具可读性的自编写代码.它们可以在任何使用常规元组的地方使用,并且可以通过名称而不是位置索引来添加字段. 实例: from collections import namedtupleStudent=namedtuple('Student',['name','age','sex','email']) 第一个参数为设置创建子类的名字,创建一个Student类的元组子类. 方法返回的就是一个元组的子类.s=Student(

python数据结构-如何为元组中的每个元素命名

如何为元组中的每个元素命名 简述 当对象数据格式固定时,用元组比列表更节省内存空间, 我们使用索引访问元组元素,但是这种访问方式会降低程序的可读性. 举个栗子 对于学生的信息,我们有固定的数据格式,我们可以用元组表示, 但是在我们使用它的时候并不知道stu1[1],stu[2]具体代表什么信息, 这就大大降低了程序的可读性 stu1 = ("tom", 16, "male") def fun1(stu): if stu1[1]: pass if stu1[2] ==

为元组中的每个元素命名,提高程序可读性

元组中,使用索引(index)访问时,会出现大量索引,降低程序的可读性. 解决方法:1: 定义类似与其他语言的枚举类型,也就是定义一系列数值常量 eg_v1:定义一个学生信息的元组,包括姓名,年龄,性别,邮箱 ("aaaa",22,"boy","[email protected]") ("bbbb",20,"boy","[email protected]") ("cccc&qu

python 中变量的命名方法

从网上找到django中python的命名规范 Python  规范 代码的布局  编码 所有的Python脚本文件都应在文件头标上“# -*- coding:utf-8 -*-”.  缩进 4个空格一个缩进层次 空行 适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则: (1) 在类.函数的定义间加空行: (2) 在import不同种类的模块间加工行: (3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔 换行        语句比较长,

Spring中Bean的命名问题及ref和idref之间的区别

一直在用Spring,其实对其了解甚少,刚去了解了一下Spring中Bean的命名问题以及ref和idref之间的区别,略作记录,以备后查. Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: <bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean> 此

[JAVA][Spring]Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别

Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: <bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean> 此时需要通过接口getBean(Class<T> requiredType)来获取Bean: 如果该Bean找不到则抛异常:NoSu

(转)Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别

Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: <bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean> 此时需要通过接口getBean(Class<T> requiredType)来获取Bean: 如果该Bean找不到则抛异常:NoSu

问答:如何规划CSS 中 的命名方式 如何看待 CSS 中 BEM 的命名方式?

好多盆友 很纠结 css命名规则 怎么弄,还没起步就被绊住了,那么今天蝈蝈就针对这个问题来讨论一下 没什么技术 含量,但却对效率开发至关重要的 "问题". 下文是一些知乎大神的个人经验总结,如果觉得有用请点赞 留言! JS前端实用开发QQ群 :147250970  欢迎加入~! 如何看待 CSS 中 BEM 的命名方式? BEM的意思就是块(block).元素(element).修饰符(modifier),是由Yandex团队提出的一种CSS Class 命名方法. 类似于: .blo

零基础学习python_列表和元组(10-13课)

一时兴起今天又回过头来补一下列表和元组,先来说说列表哈,列表其实是python最经常用到的数据类型了,不仅经常用还很强大呢,这个跟C语言里面的数组是类似的,列表当然也可以增删改查,不过我可没打算用之前字典的方式给大家讲解,我给大家讲解下列表的常用方法就好了. 1.首先我先讲下怎么创建一个列表,你看下方list1是创建了一个空列表,list2是创建了一个有值列表. 2.list1.append(),这个方法是在列表末尾追加,看下面例子: 记得append()方法是列表末尾追加 这种末尾追加虽然可以