【问题标题】:Plotting tuples from for loop using zip() in python在 python 中使用 zip() 从 for 循环中绘制元组
【发布时间】:2020-06-30 10:41:11
【问题描述】:

我有两组数字(它们确实是字典),ab。我想绘制两种类型的数字。具体来说,对于a 中的每个数字,b 中都有一个对应的数字,我希望 a 中的数字彼此相等,并将 b 中的数字求和为该数字。例如:

数字310a中出现了很多次,所以我想将b中与310对应的所有数字相加。

for i, j in zip(a, b):
        print(i["number1"], j["number2"])

这段代码给了我所有的元组,但是对于所有相等数量的i["number1"],我需要对相应的j["number2"]求和。最后我想在直方图中绘制它,所以我需要一个数组或元组列表:[(310, sum of numbers in b for 310),(420, ... for 420), ...],我不太确定如何将这些元组附加到一个我可以绘制的数组中。

【问题讨论】:

  • 创建一个新列表并比较总和,如果条件满足将元素添加到列表中
  • abtype 是什么?它不能是set,因为集合不允许重复?或许你可以分享ab的片段?
  • @Ronald 我知道这不是数学意义上的集合,我使用的是集合的概念。 a 是一个系列,b 是一个字典。 i["numbers"]j["numbers"] 的类型分别具有floatint 的类型。也就是说,实际上i["number1"] 应该只是i,因为a 并不是真正的字典。我只是试图通过使帖子中的所有内容都相同来不使事情复杂化。所以,print(i["number1"], j["number2"]) 产生:310.0 1322 510.0 678 420.0 1203 310.0 2347。 . .
  • 我已经这么想了。请分享两个列表(或足够大的片段),然后我可以看看。

标签: python dictionary tuples zip histogram


【解决方案1】:

或者这是否已经回答了你的问题:

a = [310.0, 510.0, 420.0, 310.0]
b = [1322, 678, 1203, 2347]

print(sum([j for i, j in zip(a,b) if i==310.0]))
>>> 3669

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2018-09-21
    • 2021-08-02
    • 1970-01-01
    • 2021-04-15
    • 2020-07-24
    相关资源
    最近更新 更多