函数可变参数遇到固定语句无法判断参数关系的问题

2020-10-27 14:00:33 +08:00
 yellowtail

比如有两个可变参数,ab,需要比较参数关系是否符合 a>b,可以写 if argv[0]>argv[1]: 但是现在有三个参数 abc 的话,需要比较是否 a>b>c,问题就来了。。之前判断式是为两个参数准备的,只能再加一个判断,然后根据参数数量选择执行方式。。如果参数多了该怎么办呢?有什么好的解决办法?

1254 次点击
所在节点    Python
5 条回复
yellowtail
2020-10-27 14:06:06 +08:00
又思考了下,可以用 for 循环进行多次判断。。不过感觉有点取巧,不知道是否有更普适的方法。。
xiaolinjia
2020-10-27 14:52:59 +08:00
if sorted(argv, reverse=True) == list(argv):
嫌麻烦可以这样一句,不过效率比较低,元素多了就不够好。
no1xsyzy
2020-10-27 15:14:50 +08:00
是指任意参数表以降序排列吗?

all(f>l for f,l in zip(argv[:-1], argv[1:]))
no1xsyzy
2020-10-27 15:18:19 +08:00
不过可读性还不如 for 过一遍……
yucongo
2020-10-27 17:34:34 +08:00
all(elm > argv[idx + 1] for idx, elm in enumerate(argv[:-1]))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/719013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX