鱼C论坛

 找回密码
 立即注册
查看: 2249|回复: 6

[已解决]有哪位大神帮个忙

[复制链接]
发表于 2020-11-30 10:19:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

给定一个点列表(x, y),根据它从原点开始的斜率(0,0),
          Slope = y/x

对这些点进行降序排序。
假设没有点有相同的斜率,你不需要考虑(0,0)本身,但是注意当直线垂直于x轴时,我们将其斜率还原为∞。你可以使用浮点数('inf')来表示∞
在python中
(可以在前面插入垂直斜率的点。)

def sort_points(points):
最佳答案
2020-11-30 15:43:28
lifhv 发表于 2020-11-30 15:14
感谢,那用def表达呢


前面的回帖忘了用降序了。
def sort_points(points):
    points.sort(key = lambda x: float('inf') if x[0] == 0 else x[1] / x[0], reverse = True)


points = [(1.2, 3.4), (2.1, 5.5), (0, -3)]
sort_points(points)
print(points)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 12:58:01 | 显示全部楼层
看不太懂你的表述,这里提供一个思路,不知道是不是符合你的预期
1、给定点列表[(x,y),(x1,y1)…(xn,yn)]
2、定义slope列表,利用for in 循环,把slope结果逐个放入slope列表
3、定义字典,把点列表的元素和slope列表的元素一一对应组建成字典
4、对slope列表用sort方法排序
5、利用for in 循环,把slope列表的元素对应的键值从字典中一一取出
6、取出的点加入列表就完事儿了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 13:11:59 | 显示全部楼层
笨鸟学飞 发表于 2020-11-30 12:58
看不太懂你的表述,这里提供一个思路,不知道是不是符合你的预期
1、给定点列表[(x,y),(x1,y1)…(xn,yn)]
...

是这样的,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 13:12:46 | 显示全部楼层
lifhv 发表于 2020-11-30 13:11
是这样的,感谢

有具体的表达吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 14:18:47 | 显示全部楼层
本帖最后由 冬雪雪冬 于 2020-11-30 14:20 编辑
>>> list1 = [(1.2, 3.4), (2.1, 5.5), (10.2, -3)]
>>> list1.sort(key = lambda x: float('inf') if x[0] == 0 else x[1] / x[0])
>>> list1
[(10.2, -3), (2.1, 5.5), (1.2, 3.4)]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 15:14:17 | 显示全部楼层

感谢,那用def表达呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 15:43:28 | 显示全部楼层    本楼为最佳答案   
lifhv 发表于 2020-11-30 15:14
感谢,那用def表达呢


前面的回帖忘了用降序了。
def sort_points(points):
    points.sort(key = lambda x: float('inf') if x[0] == 0 else x[1] / x[0], reverse = True)


points = [(1.2, 3.4), (2.1, 5.5), (0, -3)]
sort_points(points)
print(points)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表