Python实用技巧之利用元组代替字典并为元组元素命名

yipeiwu_com6年前Python基础

前言

本文主要给大家介绍了关于Python利用元组代替字典并为元组元素命名的相关内容,下面话不多说了,来一起看看详细的介绍吧

场景:

一般使用字典定义一个人的姓名,年龄,性别,邮箱等信息是非常方便的,比如:

student_one = {'name': 'Tom', 'age': 19, 'sex': 'male', 'email': 'tom123@hotmail.com'}

使用元组表示则为:

student_one = ('Tom', 19, 'male', 'tom123@hotmail.com')

使用元组替代字典表示信息的时候,一方面很难分别元素的含义,另一方面在取值的时候,需要通过索引(index)来获得,即:

student_one[0]
student_one[1]
student_one[2]
student_one[3]

当代码量很多的时候,很难分辨索引分别代表的值是什么,因此需要给每个索引命名,来解决难以分辨的问题:

第一种方案:给索引取”别名”

name = 0
age = 1
sex = 2
email = 3
# 这样即可通过索引的"别名"来取值

升级:

# 通过组包来完成
name, age, sex, email = range(4)

第二种方案:使用标准库中的collections.namedtuple来替代内置的tuple

from collections import namedtuple

student = namedtuple('student', ['name','age','sex','email'])

student_one = student("tom", 16, "male", "tom123@hotmail.com")

print(student_one)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

python elasticsearch从创建索引到写入数据的全过程

python elasticsearch从创建索引到写入数据的全过程

python elasticsearch从创建索引到写入数据 创建索引 from elasticsearch import Elasticsearch es = Elasticsea...

TensorFlow实现iris数据集线性回归

TensorFlow实现iris数据集线性回归

本文将遍历批量数据点并让TensorFlow更新斜率和y截距。这次将使用Scikit Learn的内建iris数据集。特别地,我们将用数据点(x值代表花瓣宽度,y值代表花瓣长度)找到最优...

anaconda中更改python版本的方法步骤

anaconda中更改python版本的方法步骤

anaconda是一个非常好用的python发行版本,其中包含了大部分常用的库。 最新的anaconda中python版本已经更新到了python3.6,而tensorflow只支持py...

Python字符串和正则表达式中的反斜杠('\')问题详解

在Python普通字符串中 在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用...

通过python下载FTP上的文件夹的实现代码

复制代码 代码如下:# -*- encoding: utf8 -*-import osimport sysimport ftplibclass FTPSync(object): ...