Python 认为我的元组是一个整数

标签 python indexing integer int tuples

我试图打印出字符串中给定子字符串的位置,但在第 18 行我一直收到错误

Traceback (most recent call last): File "prog.py", line 18, in <module> TypeError: 'int' object has no attribute '__getitem__'

我不知道为什么会这样,因为我是 python 的新手。但无论如何,这是我的程序:

sentence = "one two three one four one"
word = "one"

tracked = ()
n = 0
p = 0
for c in sentence:
    p += 1
    if n == 0 and c == word[n]:
        n += 1
        tracked = (p)
    elif n == len(word) and c == word[n]:
        print(tracked[1], tracked[2])
        tracked = ()
        n = 0
    elif c == word[n]:
        n += 1
        tracked = (tracked[1], p)
    else:
        tracked = ()
        n = 0

最佳答案

tracked = (p) 是一个整数,不是元组。括号不一定创建元组,因为它们也用于表达式中的运算符优先级。在这种情况下,它只是将其作为表达式进行评估,因此 (p) 被评估为 p。如果你想让它成为一个元组,你需要添加一个逗号 (p,) 使其成为一个元组。

尽管在您的情况下,您尝试调用 tracked[1]、tracked[2],但它们都不适用于单个项目元组。目前还不清楚您要做什么,但元组显然是不可变的(意味着它们不会更改,不能附加到等等),而且列表似乎更可能是您需要的。

关于Python 认为我的元组是一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33735091/

相关文章:

excel - 使用带有索引的 if 语句

java - 拆分包含两个 (x,y) 整数的字符串 - Java

Python 扭曲 - 需要遍历所有连接并找到客户端

python - 将结果添加到列表并设置 for 循环

mongodb - 是否可以在 MongoDB 中创建多集合索引(或搜索)?

java - 将字符串转换为整数

c++ - 如何验证整数输入?

python - 如何使用 Python 找到 Windows 通用应用程序数据文件夹?

python - 使用 Numpy 对数据进行分箱以简化线性回归

c++ - 如何查看.a(存档)文件的 "index"信息?