在Python 2.7中解包元组
实际上,在一个项目中,自制的本地DB api以元组的形式返回SQL请求的所有结果 就像这样:在Python 2.7中解包元组,python,tuples,args,keyword-argument,Python,Tuples,Args,Keyword Argument,实际上,在一个项目中,自制的本地DB api以元组的形式返回SQL请求的所有结果 就像这样: result = ( (result1.1, result1.2... ), (result2.1, .... ) .... ) ( (result1.1, result1.2... ), (result2.1, .... ) .... ) = result 问题是:当他们打开元组时,我们会得到很多很多。。。(许多)值错误,因为他们这样做: result = ( (result1.1, result
result = ( (result1.1, result1.2... ), (result2.1, .... ) .... )
( (result1.1, result1.2... ), (result2.1, .... ) .... ) = result
问题是:当他们打开元组时,我们会得到很多很多。。。(许多)值错误,因为他们这样做:
result = ( (result1.1, result1.2... ), (result2.1, .... ) .... )
( (result1.1, result1.2... ), (result2.1, .... ) .... ) = result
这导致了这些错误:
a = (1, 2)
(b,) = a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
(b, c, d) = a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack
我的问题是:当我需要获取请求中的c列时,在解包时如何处理它
你应该考虑使用适当的数据,比如类/对象列表,这样你就不必像这样解包他们了。
newDict=[{index:value代表索引,value代表枚举(项)}中的值代表结果中的项]
python是灵活的,使用适合您需要的python 3:使用星号语法
result = ((1,2), (3,4), (5,6))
a, *_ = result
# a == (1,2)
# _ == [(3,4),(5,6)]
对于Python2:使用切片
result = ((1,2), (3,4), (5,6))
a, b = result[:2]
# a == (1,2)
# b == (3,4)
这不是当前有效的Python,您能给出一个数据和处理它的代码的示例吗?您是否可以对result中的result\u tuple执行例如
?接下来会发生什么?谁是我们
谁是他们
?您使用的是哪个版本的python?元组解包是Python3的一个附加功能。还有更好的吗?“我们”是我和项目的新人,“他们”是项目的创始人你在使用什么数据库?您可以获取dict或命名元组而不是元组:,函数名中的Camle大小写违反了PEP-8!哈哈,我知道,但你会发现图书馆将使用它!我是PEP-8的超级粉丝,但在这个世界上,经常有规则是有意义的,而规则是没有意义的。每当我在库中看到这样的函数名时,我的眼睛开始流血:)那么我希望有一天你不会失血过多,。。。不是:)解决方案1看起来像AndreyT在评论中给我的建议,解决方案2似乎写得很长,即使是,它回答了我已经尝试过的问题,解决方案3在知道命名元组的存在之前是我的最佳选择。这是我遇到的一个解决方案,即使将每个元组切分会让我感到不舒服