代码:
count = 0
oldcount = 0
for char in inwords:
if char == " ":
anagramlist.append(inwords[oldcount, count])
oldcount = count
count = 0
else:
count += 1
错误:
Traceback (most recent call last):
File "C:/Users/Knowhaw/Desktop/Python Programs/Anagram solver/HTS anagram.py", line 14,
in <module>
anagramlist.append(inwords[oldcount, count])
TypeError: string indices must be integers
到底是怎么回事? count和oldcount显然是整数,但错误表明它们不是
我甚至可以写
anagramlist.append(inwords[int(oldcount), int(count)])
并获得相同的错误
答案 0 :(得分:13)
您尝试使用(oldcount, count)
作为列表的索引。这是一个元组,而不是int。
你或许是指:
anagramlist.append(inwords[oldcount:count])
答案 1 :(得分:4)
您的切片语法错误。代码:
inwords[oldcount, count]
解析与:
相同inwords[(oldcount, count)]
您没有从oldcount
切换到count
,您正在创建oldcount
和count
的元组并将其用作字符串索引。
正确的Python切片语法是:
inwords[oldcount:count]
答案 2 :(得分:2)
您是否只是想anagramlist = inwords.split()
?
如果你真的想手动切片,你将不得不使用:
anagramlist.append(inwords[oldcount:count+oldcount])
答案 3 :(得分:0)
如果我理解您的代码,您可能会尝试使用切片表示法,这需要使用:
,而不是,
。该逗号使解释器将您的代码理解为使用元组作为字符串的索引,这显然是不允许的。
答案 4 :(得分:0)
我认为(inwords[oldcount, count])
出了点问题。您不能将(oldcount, count)
用作索引。