【问题标题】:Access and extract value in a tuple in a list?访问和提取列表中元组中的值?
【发布时间】:2021-05-29 10:20:15
【问题描述】:

我知道这可能是一个相当简单的问题,但我花了好几个小时才弄清楚。

我正在尝试使用for loop 访问元组中的每个值来计算每个元组的概率。

for i in range(len(grouped)):
    probabilities[class_number] *= summarise_list[i]

summarise_list[i]:

[(3031.660194174757, 136.76461483348012, 103), (136.64077669902912, 113.70531696131526, 103), (11.03883495145631, 5.842579221772521, 103), (324.9611650485437, 233.42685474528514, 103), (36.12621359223301, 40.204057841157116, 103), (4325.728155339806, 1102.084194803101, 103), (216.28155339805826, 18.280718158399203, 103), (223.4368932038835, 17.165669057009026, 103), (140.54368932038835, 25.034398569681457, 103), (4300.592233009709, 1621.3665105421753, 103)]
[(3031.660194174757, 136.76461483348012, 103), (136.64077669902912, 113.70531696131526, 103), (11.03883495145631, 5.842579221772521, 103), (324.9611650485437, 233.42685474528514, 103), (36.12621359223301, 40.204057841157116, 103), (4325.728155339806, 1102.084194803101, 103), (216.28155339805826, 18.280718158399203, 103), (223.4368932038835, 17.165669057009026, 103), (140.54368932038835, 25.034398569681457, 103), (4300.592233009709, 1621.3665105421753, 103)]
...
...

想法是遍历元组,查看i (x,x,x),仅比较(x,x,x) 中的前两个值,并返回要在probabilities[class_number] 乘法中计算的最大值。

例如,(3031.660194174757, 136.76461483348012, 103) 将返回 3031.660194174757。接下来i(136.64077669902912, 113.70531696131526, 103) 将返回136.64077669902912103(第三个元素)在所有情况下都将被忽略。 3031、136 等的结果将相乘。这需要在每个元组中完成以找到每个元组的每个概率。

效率在这里很重要,因为我必须处理数千行。

感谢任何帮助,谢谢。

附注:我已经阅读了Accessing a value in a tuple that is in a list,但仍然无法解决。

【问题讨论】:

    标签: python-3.x list performance loops


    【解决方案1】:

    您可以通过切片元组并使用 max 函数来做到这一点:

    for i in range(len(grouped)):
        probabilities[class_number] *= max(summarise_list[i][:2])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多