【发布时间】:2020-02-20 12:08:14
【问题描述】:
我有以下数据:
- 组
- 每个组内都有宽度
- 每个宽度都有一米
例如:
Group 1:
|Width|Meters|
--------------
|144 |500 |
--------------
|142 | 450 |
Group 2:
|Width|Meters|
--------------
|140 |500 |
--------------
|156 | 450 |
现在我需要创建一个排序算法,它将首先选择米总和更大的组,然后按降序对宽度进行排序 我不知道如何存储这些数据?它应该是字典还是 3d 数组?还是三个列表? 并且使用正确的数据结构,我该如何对其进行实际排序。即使您引导我走向正确的道路,我也不会要求完整的代码,我会找到自己的方式。谢谢
【问题讨论】:
-
在不了解更多问题的情况下很难说。字典是清晰和优雅代码的良好起点。如果速度很关键,numpy 数组可能会很有用。我会说从嵌套的 dicts 开始(一个 dict 包含组,每个组本身就是一个 dict 等),看看它是否适合你。
-
您只需要对总和最大的组进行排序,或者您需要按米的总和对组的集合进行排序,然后为每个组对宽度-米对进行排序?
-
@MarcoZamboni - 后者,需要按 sum 对组的集合进行排序,选择总和较大的一组,然后对宽度米进行排序。
-
@JussiNurminen 我可以提供更多信息吗?我会看看嵌套的字典。
-
@JussiNurminen 将其视为组的一个“for 循环”,在其中一个“for 循环”用于测量将用于计算的米的宽度。该算法应该从具有最高米和最大宽度的组开始,因此进行排序。我可以提供任何其他信息以使其变得更好吗?
标签: python algorithm numpy sorting data-structures