【问题标题】:Python Tuple loop value errorPython元组循环值错误
【发布时间】:2016-11-09 18:32:46
【问题描述】:

当我执行这些行时,我在 Python 2.7 中收到以下错误“需要超过 0 个值才能解压”:

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()”函数。

有人可以帮帮我吗?

非常感谢

【问题讨论】:

    标签: python list tuples


    【解决方案1】:

    我不确定我是否理解您的问题,但如果您想将第一个元组中的第一个元素与第二个元组中的第一个元素相加,您可以轻松地这样做。

    >>> 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]
    

    在这种情况下,元组的长度无关紧要。

    【讨论】:

      【解决方案2】:

      我会使用 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)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-04
        • 2014-04-18
        • 2021-09-01
        • 2018-12-05
        • 1970-01-01
        相关资源
        最近更新 更多