
比如有两个可变参数,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 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 不过可读性还不如 for 过一遍…… |
5 yucongo 2020-10-27 17:34:34 +08:00 all(elm > argv[idx + 1] for idx, elm in enumerate(argv[:-1])) |