比如有两个可变参数,ab,需要比较参数关系是否符合 a>b,可以写 if argv[0]>argv[1]: 但是现在有三个参数 abc 的话,需要比较是否 a>b>c,问题就来了。。之前判断式是为两个参数准备的,只能再加一个判断,然后根据参数数量选择执行方式。。如果参数多了该怎么办呢?有什么好的解决办法?
1
yellowtail OP 又思考了下,可以用 for 循环进行多次判断。。不过感觉有点取巧,不知道是否有更普适的方法。。
|
2
xiaolinjia 2020-10-27 14:52:59 +08:00 1
if sorted(argv, reverse=True) == list(argv):
嫌麻烦可以这样一句,不过效率比较低,元素多了就不够好。 |
3
no1xsyzy 2020-10-27 15:14:50 +08:00
是指任意参数表以降序排列吗?
all(f>l for f,l in zip(argv[:-1], argv[1:])) |
4
no1xsyzy 2020-10-27 15:18:19 +08:00 1
不过可读性还不如 for 过一遍……
|
5
yucongo 2020-10-27 17:34:34 +08:00
all(elm > argv[idx + 1] for idx, elm in enumerate(argv[:-1]))
|