【问题标题】:Why is this giving me "TypeError: argument of type 'int' is not iterable" when I converted the list to strings当我将列表转换为字符串时,为什么这会给我“TypeError:'int'类型的参数不可迭代”
【发布时间】:2018-03-06 23:59:51
【问题描述】:

为什么会这样给我:

"TypeError: 'int' 类型的参数不可迭代"

当我将列表转换为字符串时:

def giveMeFive (start, end):
    numbers = list(range(start,end))
    for x in numbers:
        [str(x) for x in numbers]
        if str(5) in x:
            return x

【问题讨论】:

  • 你对str(5) in x 有什么期望,因为x 是一个整数?另外,为什么不直接写'5'
  • “当我将列表转换为字符串时” - 不,你没有
  • 因为 'int' 类型的参数不可迭代
  • 你希望这段代码做什么?请提供完整的问题陈述,以便我们提供帮助。您的代码中有几个潜在的错误,但每个错误都取决于您尝试执行的操作。请参阅How to Ask 了解更多信息。

标签: python


【解决方案1】:

你可以使用这个代码

def giveMeFive (start, end):
    numbers = list(range(start,end))
    return numbers.index(5)

【讨论】:

  • 完全错误。您应该首先找出它应该做什么。另外,请使用英语。
【解决方案2】:

当您单独编写[str(x) for x in numbers] 时,您正在创建一个新的字符串列表,然后立即将其丢弃。您必须将其保存在变量中才能保留。

试试

def giveMeFive (start, end):
    numbers = list(range(start,end))
    strings = [str(x) for x in numbers]
    for x in strings:
        if str(5) in x:
            return x

现在,您的代码中有更多错误,但希望这会让您摆脱困境。

【讨论】:

    【解决方案3】:

    更清楚地说,此代码旨在返回特定范围内包含字符串“5”的所有数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2019-07-27
      • 2023-04-02
      相关资源
      最近更新 更多