当前位置:  开发笔记 > 编程语言 > 正文

在Python中拆分元组 - 最佳实践?

如何解决《在Python中拆分元组-最佳实践?》经验,为你挑选了3个好方法。

我的Python代码中有一个方法返回一个元组 - 一个SQL查询中的一行.假设它有三个字段:(jobId,label,username)

为了便于在函数之间传递它,我将整个元组作为一个名为"job"的变量传递.然而,最终,我想得到这些位,所以我一直在使用这样的代码:(jobId,label,username)= job

然而,我已经意识到这是一个维护噩梦,因为现在我永远不会在不破坏所有现有代码的情况下向结果集中添加新字段.我该怎么写这个?

以下是我最好的两个猜测:(jobId,label,username)=(job [0],job [1],job [2])...但是当你有15 ... 20个字段时,它不能很好地扩展

或者直接将SQL查询的结果转换为字典并传递给它(我无法控制它作为一个元组开始生活的事实,这对我来说是固定的)



1> Aaron Maenpa..:

@Staale

有一个更好的方法:

job = dict(zip(keys, values))



2> Chris Upchur..:

我会说字典绝对是最好的方法.它易于扩展,允许您为每个值赋予一个合理的名称,并且Python具有许多用于使用和操作字典的内置语言功能.如果以后需要添加更多字段,则需要更改的是将元组转换为字典的代码以及实际使用新值的代码.

例如:

job={}
job['jobid'], job['label'], job['username']=



3> JAB..:

这是一个老问题,但......

我建议在这种情况下使用一个命名元组:collections.namedtuple

特别是这部分你觉得很有用:

子类化对于添加新的存储字段没有用.相反,只需从_fields属性创建一个新的命名元组类型.


其他好处:*namedtuple*方法比字典使用更少的内存,它支持更新值的\ _replace()方法.
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有