【发布时间】:2015-08-26 01:29:15
【问题描述】:
我有四种颜色的线段——粉色、绿色、橙色、红色——如下图所示。
例如,第一个粉红色段的开始和结束位置为(5258,5422)。
坐标存储在这个元组字典中:
mycoord = { 'pink' :[(5258,5422), (5479,5864)],
'green' :[(5425,5450)],
'orange':[(5266,5770)],
'red' :[(5258,5864)] }
我要做的是获取所有可能的交叉点的开始和结束值,如下图所示:
因此,期望的答案是:
sect1/pink-red : 5258,5266
sect2/pink-orange-red : 5266,5422
sect3/orange-red : 5422,5425
sect4/green-orange-red: 5425,5450
sect5/orange-red : 5450,5479
sect6/pink-orange-red : 5479,5770
sect7/pink-red : 5770,5864
请注意,我想为每个交叉点保留颜色指示器(例如, pink-red)。如何使用 Python 实现这一点?
【问题讨论】:
-
快速猜测:将值展平并排序?
-
展平和排序可能会丢失颜色信息;你需要像numpy的argsort这样的东西。 Neversaint:你已经尝试过什么了吗?你可以看看 Python 的集合,并使用交集;也许这可以帮助您入门。
-
@neversaint 您接受了一个当有多个相同颜色的重叠段时不起作用的答案。我的答案适用于所有情况。
-
@MichaelLaszlo:好的。我接受了你的。