【问题标题】:Number of occurrences of a number in a list列表中数字的出现次数
【发布时间】:2023-01-20 04:26:47
【问题描述】:

下面的这个程序应该计算列表中 x 的出现次数。无法识别代码中的错误

def count_x( items, x ):
    if items==[]:
        return 0
    first = items.pop(0)
    if first == x:
        return 1 + count_x(items, x)

【问题讨论】:

  • 发布堆栈跟踪
  • 调用列表中的最后一项 first 是一个奇怪的变量名选择。无论如何——如果first,你的代码会做什么?不是等于x
  • @JohnColeman items.pop(0) 返回列表中的第一项。
  • 如果first怎么办?不是等于x?在这种情况下你的函数返回什么?
  • 你知道你可以做到val = items.count(x),不是吗?

标签: python


【解决方案1】:

有更好的方法可以做到这一点,但值得解决您的代码抛出错误的原因。

当弹出的项目不等于您的搜索项目时,您没有理由。这会导致函数返回 None。由于它递归地工作,它会尝试计算 int + None,这会导致错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 2011-06-14
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多