python - 一个递归函数,用于检查 int 列表是否按升序排序

标签 python

def is_sorted(s):
    if s==[]:
       return True
    else:
       return s[0]<is_sorted(s[1:])

调用这个函数应该得到:

#1 is_sorted([])-->True
#2 is_sorted([1,2,3,4,5,6,7])-->True
#3 is_sorted([1,2,3,7,4,5,6])-->False

但是我的函数在#2 上总是返回 False 而不是 True,有人可以指出我函数的问题吗?谢谢。

最佳答案

问题:

问题是您正在将整数 s[0]is_sorted(s[1:]) 的返回值进行比较,后者是一个 bool 值。 (这有点模糊,因为 python 自动将 bool 值转换为整数(0 或 1))

修复:

您的返回值必须是一个 bool 值(在输出中指定),因此您需要提出不同的比较和不同的递归调用。

关于python - 一个递归函数,用于检查 int 列表是否按升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837787/

相关文章:

python - 为什么 pip 安装程序希望 gcc-4.2 成为 OS X Lion 中 gcc 编译器的名称?

python - 在 matplotlib 中改变寄生虫轴的颜色

python - 为什么在使用 NumPy 进行楼层划分时会显示数据类型(即使它是 native 数据类型)?

Python一致性哈希替换

python - 如何删除至少包含一个缺失元素的数据框列

java - Python 作为 graalvm 中的 "host"语言

python - 检查 pandas 中是否至少有一列包含字符串

python - AWS Glue - 在插入之前截断目标 postgres 表

python - PyQt4 中的 QThreading PyQtGraph PlotWidgets

python - 如何将页面滚动到末尾