【问题标题】:How can I add tuples in a list? [closed]如何在列表中添加元组? [关闭]
【发布时间】:2019-04-28 10:23:36
【问题描述】:

假设我有一个包含元组的列表。

类似这样的:

listnum = [(12,18),(12,20)]

有没有办法可以添加元组中的内容并将listnum 变为:

listnum = [30,32]

【问题讨论】:

  • 是的,有办法。你的方法是什么,它有什么问题?你有错误吗?
  • 我什至没有开始。我意识到 sum() 行不通。如果你知道路,请告诉我。
  • sum 在什么情况下不起作用? (当然,sum(listnum) 不是您想要的,但您不能想出一些 方法来将sum 应用于问题吗?)

标签: python list tuples


【解决方案1】:
listnum = [sum(x) for x in listnum]

【讨论】:

  • 这也有效。
【解决方案2】:

你可以试试这个

listnum = [(12,18),(12,20)]
required_list = []
for i in range (0, len(listnum)):
    required_list.append(sum(list(listnum[i])))

【讨论】:

  • 这太棒了!谢谢!
【解决方案3】:

首先,您应该更具体地说明您的期望。 如果您希望您的列表是元组中数字的总和,您可以执行以下操作:

listnum = [sum(x) for x in listnum]

【讨论】:

  • 这正是我所需要的!也感谢您的反馈!
【解决方案4】:

@D.SuperFireball。以下是解决您问题的方法:

listnum = [(12,18),(12,20)] 
listnum = [x[0] + x[1] for x in listnum]

# result:
# print(listnum)
# [30, 32]

【讨论】:

    【解决方案5】:

    您可以使用列表推导来做到这一点:

    listnum = [(12,18), (12,20)]
    res = [x + y for x, y in listnum]
    print(res)
    [30, 32]
    

    【讨论】:

    • 或者,如果您可以访问 numpy,并且您需要对数字列表中的元组数量有更大的灵活性,您可以转换为 numpy 数组并求和:l = numpy.asarray(listnum ) res = l.sum(axis=-1)
    • 这为我返回了一个空列表。
    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    相关资源
    最近更新 更多