Python TypeError:字符串索引必须是整数,而不是str 4
我试图制作一个代码,在给定的任何单词的每个辅音前面加上一个“o”,我不知道从这里可以走到哪里,我只得到一个错误Python TypeError:字符串索引必须是整数,而不是str 4,python,string,int,Python,String,Int,我试图制作一个代码,在给定的任何单词的每个辅音前面加上一个“o”,我不知道从这里可以走到哪里,我只得到一个错误“TypeError:字符串索引必须是整数,而不是str” 您正在使用print bok[“0”],使用字符串“0”作为索引。您需要使用整数,因此请按如下方式替换: print bok[0] 我不确定我是否理解您在这里的总体目标,但这将解决您发布此问题的错误 您正在使用print bok[“0”],使用字符串“0”作为索引。您需要使用整数,因此请按如下方式替换: print b
“TypeError:字符串索引必须是整数,而不是str”
您正在使用
print bok[“0”]
,使用字符串“0”作为索引。您需要使用整数,因此请按如下方式替换:
print bok[0]
我不确定我是否理解您在这里的总体目标,但这将解决您发布此问题的错误 您正在使用
print bok[“0”]
,使用字符串“0”作为索引。您需要使用整数,因此请按如下方式替换:
print bok[0]
我不确定我是否理解您在这里的总体目标,但这将解决您发布此问题的错误 首先,数组索引是用整数而不是字符串完成的:
>>> a = [1, 2, 3]
>>> a["0"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> a[0]
1
第三,您可以迭代字符串,而无需将其转换为列表:
>>> for c in list("abc"):
... print c
...
a
b
c
>>> for c in "abc":
... print c
...
a
b
c
第四,遍历一个字符串会依次生成一个包含每个字符的字符串。您不必获取该字符串的第0个索引-这是一样的:
>>> "b"
'b'
>>> "b"[0]
'b'
>>> "b"[0] == "b"
True
首先,数组索引是使用整数而不是字符串进行的:
>>> a = [1, 2, 3]
>>> a["0"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> a[0]
1
第三,您可以迭代字符串,而无需将其转换为列表:
>>> for c in list("abc"):
... print c
...
a
b
c
>>> for c in "abc":
... print c
...
a
b
c
第四,遍历一个字符串会依次生成一个包含每个字符的字符串。您不必获取该字符串的第0个索引-这是一样的:
>>> "b"
'b'
>>> "b"[0]
'b'
>>> "b"[0] == "b"
True
更简单的方法是使用正则表达式,例如:
import re
print re.sub('([bcdfghjklmnpqrstvwxyz])', r'o\1', 'tobias')
# otoobiaos
这将查找[]
(辅音)之间的任何中间字母,并将其替换为o
,后跟找到的字母
例如,获取用户输入:
word = raw_input('Enter a word: ')
print re.sub('([bcdfghjklmnpqrstvwxyz])', r'o\1', word)
更简单的方法是使用正则表达式,例如:
import re
print re.sub('([bcdfghjklmnpqrstvwxyz])', r'o\1', 'tobias')
# otoobiaos
这将查找[]
(辅音)之间的任何中间字母,并将其替换为o
,后跟找到的字母
例如,获取用户输入:
word = raw_input('Enter a word: ')
print re.sub('([bcdfghjklmnpqrstvwxyz])', r'o\1', word)
您可以逐个字符迭代字符串
k='bcd…z'
就足够了(出于同样的原因,k=list('bcd…z')
如果您真的想要一个包含25个一个字符的字符串的列表,就可以工作了)k='bcd…z'
就足够了(出于同样的原因,k=list('bcd…z')
如果您真的想要一个包含25个一个字符字符串的列表,那么它就可以工作了)。这当然解决了我的问题!但是,如果我希望用户能够写出他/她想要的任何单词,那么这个单词在每个辅音前面都有一个“o”,比如“Otobiaos”,我该怎么做呢?我知道我至少必须使用原始输入。@Tobias yup-使用类似于word=raw\u input('Enter word:')的提示将word
而不是文本'Tobias'
传递到函数中谢谢!这帮了大忙!还有一个问题,如果我想让“o”出现在辅音后面,我该怎么做?我还使用同样的功能吗?@Tobias是的。。。\1
表示找到的字符。。。o
只是一个文字。。。我把剩下的交给你整理:)这当然解决了我的问题!但是,如果我希望用户能够写出他/她想要的任何单词,那么这个单词在每个辅音前面都有一个“o”,比如“Otobiaos”,我该怎么做呢?我知道我至少必须使用原始输入。@Tobias yup-使用类似于word=raw\u input('Enter word:')的提示将word
而不是文本'Tobias'
传递到函数中谢谢!这帮了大忙!还有一个问题,如果我想让“o”出现在辅音后面,我该怎么做?我还使用同样的功能吗?@Tobias是的。。。\1
表示找到的字符。。。o
只是一个文字。。。我把剩下的交给你整理:)