python-3.x - 访问和提取列表中元组中的值?
问题描述
我知道这可能是一个相当简单的问题,但我花了好几个小时才弄清楚。
我正在尝试使用 afor 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.64077669902912
。103
(第三个元素)在所有情况下都将被忽略。3031、136 等的结果将相乘。这需要在每个元组中完成以找到每个元组的每个概率。
效率在这里很重要,因为我将不得不处理数千行。
感谢任何帮助,谢谢。
旁注:我已通读访问列表中的元组中的值但仍无法解析它。
解决方案
您可以通过切片元组并使用 max 函数来做到这一点:
for i in range(len(grouped)):
probabilities[class_number] *= max(summarise_list[i][:2])
推荐阅读
- powershell - 如果它们存在于使用 Powershell 的文本文件中,则删除它们的列表
- angular - Angular 2 错误:找不到功能模块/路径
- reactjs - 当我将应用程序从 React 16.x 迁移到 17.x 时,.ts 文件出现“解析错误”
- typescript - 迭代 Typescript 中的枚举项
- python - 我正在尝试使用 pandas 连接 2 个 CSV,但最后一列总是得到“”
- npm - 为什么这段代码“npm install -g 动物区系壳”给我这个错误
- symfony - Symfony - 为一个包加载事件监听器
- python - 找不到页面 (404) 请求方法:GET 请求 URL:http://127.0.0.1:8000/login
- linux-kernel - 树莓派上的 Minecraft Forge
- ssh - 当 scp 从一台服务器复制到另一台服务器时,使用 sshpass 将密码传递给两台服务器