war*_*ing 2 python indexing int integer 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
Run Code Online (Sandbox Code Playgroud)
tracked = (p)是整数,而不是元组.括号不一定创建元组,因为它们也用于表达式中的运算符优先级.在这种情况下,它只是将它作为表达式(p)进行评估,因此得到评估p.如果你想把它变成一个元组,你需要添加一个逗号(p,)来使它成为一个元组.
虽然在你的情况下你正试图打电话tracked[1], tracked[2],但这两个都不适用于单个项目元组.目前还不清楚你要做什么,但元组是明确不可变的(意思是它们不会改变,不能附加到等等),看起来列表更可能是你需要的.