0

现在请你判断我的常见问题解答我的问题并不像“最佳最短路径算法”那么简单(至少我认为)。

我有一个谷歌电子表格。

每一行都以城镇名称开头,然后是经过的道路的 nr 条以及这些道路的名称。像下面这样的东西:

Ex. Spreadsheet / First sheet:
         A    |               B               |     C     |     D     |     E     |
 1  Town name | Number of roads you find here | road name | road name | road name |    
 2  Manchester| 3                             |        M1 |        M2 |        M3 |
 3  Leeds     | 1                             |        M3 |           |           |
 4  Blackpool | 2                             |        M1 |        M2 |           |

现在这个电子表格有许多工作表,每个工作表都对应每个道路名称(在我的情况下是 M1、M2、M3。M1 是第二个工作表,因为第一个工作表包含上面的内容。M2 是第三个等等)

 Ex. Spreadsheet / Second sheet:
       A      |    B      |        C       |      D       |      E     |      F     |
1   This road | Town name | Distance in km | type of road | other road | other road |  
2      M1     | Manchester|       0        |      M2      |     M3     |            | 
3      M1     | Blackpool |      25        |      M2      |            |            |

第三张类似,下一张类似结构。一个城镇可以包含在多张表中,具体取决于与之相连的道路的数量。您可以从上面的示例中看到它。

电子表格不是我制作的。就像这样。它不会变得更好。我从程序中的谷歌电子表格中提取数据没有问题。用 python 读取电子表格数据不是这里的问题。

  1. 在 wxpython/python 中编写程序的最佳方法是什么,用户输入 Starting Town 和 Finishing Town。
  2. 该程序将读取电子表格和相应的工作表。
  3. 会以某种方式在这个工作表丛林中找到最佳路径。
  4. 它还会返回从起始城镇到终点城镇的总距离,即使它可能需要经过 2-3 个工作表才能到达那里。
  5. 将以可爱的形式将结果返回到用户屏幕:)

我希望你发现我的问题足够具有挑战性,值得质疑。

我求你帮忙。告诉我解决这个非常具体的问题的方法。

4

1 回答 1

1

你之前尝试的结果是什么:

wxPython 应用程序从 Google 电子表格和用户输入获取数据的速度太慢了,需要加快解决方案

你发现什么花了这么长时间?您在那里遇到了哪些其他问题?

我对 stackoverflow 比较陌生,但我见过这些风格问题,可以解释为“你能为我写这段代码吗?” ,因为很快就被拒绝了。

您可能需要考虑分享上述链接中的一些挑战并解释项目中的特定问题。

更新

1+5: From the WX point of view, you'll want to keep the UI responsive whilst the search is going on. One way to do this is kick off the searching in a separate thread which calls wx.PostEvent once it has finished. Then in the main wx App you have an event handler which receives the event and processes it. In your case "shows the results on a lovely form".

See here for an example: http://wiki.wxpython.org/LongRunningTasks

于 2012-12-11T09:17:01.473 回答