Python元组循环值错误



当我执行这些行时,我在Python 2.7中得到以下错误"need more than 0 value to unpack":

for row, row2 in results, results2:
  row = list(row)
  row2 = list(row2)
  row2[7] += row[7]

目标是将results中的value0与results2中的value0相加,然后将results中的value1与results2中的value1相加,…我使用psycopg2模块的"fetchall()"函数。

有人能帮帮我吗?

Thanks to lot

我不确定我理解你的问题,但如果你想从第一个元组中添加第一个元素与第二个元组中的第一个元素,你可以很容易地这样做。

>>> tup = [(1,1),(2,2),(3,3)]
>>> tup1 = [(4,4),(5,5),(6,6)]
>>> tup
[(1, 1), (2, 2), (3, 3)]
>>> tup1
[(4, 4), (5, 5), (6, 6)]
>>> x1 = [x[0] for x in tup]
>>> x2 = [x[0] for x in tup1]
>>> x1
[1, 2, 3]
>>> x2
[4, 5, 6]
>>> list(zip(x1,x2)) #if you want to create another tuple
[(1, 4), (2, 5), (3, 6)]
>>> x1.extend(x2) #if you want to make a list
>>> x1
[1, 2, 3, 4, 5, 6]

在这种情况下,元组的长度不重要。

我将使用map和zip来完成这项工作:

from operator import add
list1 = [(1,2), (3,4), (5,6)]
list2 = [(7,8), (9,10), (11,12)]
list3 = [map(add, row1, row2) for row1 row2 in zip(list1, list2)]

最新更新