【问题标题】:TypeError: 'int' object is not subscriptable in Python3TypeError:“int”对象在 Python3 中不可下标
【发布时间】:2020-09-25 09:54:32
【问题描述】:

问题:查找列表中是否存在回文整数。
解决方案:我遍历了显示印刷错误的整数变量。在使用字符串对列表的每个整数进行类型转换后,我能够遍历列表。

输出给出类型错误:'int' object is not sub-scriptable

def function(n, L):
    # checking if number i == reverse of this number which is raising error
    print(any(i==i[::-1] for i in L))

if __name__ == '__main__':
    n = 5
    L = [2, 3, 5, 101, 42]
    function(n, L)

【问题讨论】:

  • 请与我们分享您希望通过上述function() 功能实现的目标,以便我们为您提供帮助。
  • 将 L 整数列表更改为字符串列表。然后在它的可迭代对象上应用 slice。知道了。谢谢。
  • 这是一个非常混乱的函数。您能否描述一下您希望它做什么?
  • 那么n的作用是什么?
  • 请详细说明您想做什么!!

标签: python python-3.x list integer


【解决方案1】:

“'int' object is not subscriptable”表示你尝试在一个int变量上使用“[]”

在你的代码中,L 是一个整数列表,你在 for 循环中访问每个元素,然后你尝试获取 int 变量(表示为 i)并像这样访问它“i[::-1]”这是一个“Typeerror”,因为“i”是一个整数而不是一个列表

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果你只想检查一个元素是否在列表中,你可以使用

    n in L
    

    如果 n 是 L 的元素,则返回 True

    【讨论】:

      【解决方案3】:

      我认为您想查找列表中是否有数字 n(或字符串)。如果我理解正确,请尝试使用这个函数,它更具可读性和运行。

          def function(n,L):
              print(any(n == x for x in L))
      
          if __name__ == '__main__':
              n = 5
              L = [2, 3, 5, 101, 42]
              function(n, L)
      

      希望这是你需要的

      【讨论】:

      • 我想检查列表中的 no 是否是回文 no。实际上,当我遍历列表时,元素是整数,所以当它们是 int 时,我不能遍历整数的数字。所以它将它们类型转换为字符串,然后我对它们进行迭代,我成功地回答了这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2012-02-21
      • 2018-08-07
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多