请解释为什么str.index()两次计数同一字母



我是Python的新手。我想获取每个字母的索引(位置(。我以为每个字母都有自己的位置,但是此代码显示其他明智。显然我没有正确地这样做。

使用此代码,您可以解释为什么此str.index(l)会仔细计算相同的字母。以及我如何正确获取每个字母的索引?因此,"hello"将是0,1,2,3,4,而不是0,1,2,2,4,如下所示:

>>> def a(str):
    for l in str:
       print(str.index(l))
>>> a('hello')
0
1
2
2
4
>>> 

python的index函数返回列表中找到的对象的最低索引(在您的情况下((在您的情况下为字符串(。

如果您想获取每个字母的索引,则需要迭代其索引。

for i in range(len(str)):
    print(i)

我不写python,但它的行为就像索引,它正在返回str

中的第一次出现该字母

您写的内容被翻译成

in this str = "hello"
at this l = "h" that occurs at 0 index,
e = 1
l = 2
l = 2, because of the first occurrence left to right
o = 4

查看我可以看到的文档..可以像这样写:

def a(str):
  for l in range(len(str)):
      print(l)
a('hello')

str.index()使用 FAST_SEARCH算法。

FAST_SEARCH在字符串s上迭代,以寻找单个字符c的第一个出现。 str.index()使用您的全系列作为s来执行此操作,同时迭代其用于c的每个字符,一个接一个。

>

最新更新