Python:困在索引元音中

Python:困在索引元音中,python,python-3.x,string,for-loop,indexing,Python,Python 3.x,String,For Loop,Indexing,因此,我正在准备期中考试,在做pdf文档中的练习时,我面临以下练习: 为字符串编写代码,打印其所有元音(a、e、i、o和u)的索引。这可以通过for循环或while循环完成 给出了:s=“现在是完全不同的结果” 我编码说: for j in s: for i in range(len(s)): if s[i] == "a" or s[i] =="e" or s[i] == "i" or s[i] == "o" or s[i] == "u":

因此,我正在准备期中考试,在做pdf文档中的练习时,我面临以下练习:

为字符串编写代码,打印其所有元音(a、e、i、o和u)的索引。这可以通过for循环或while循环完成

给出了:s=“现在是完全不同的结果”

我编码说:

for j in s:
    for i in range(len(s)):
         if s[i] == "a" or s[i] =="e" or s[i] == "i" or s[i] == "o" or s[i] == "u":
              print (j[i])
我得到了一个错误: “字符串索引超出范围”


我试着这样做是因为我在另一个类似的练习中使用了它,要求在两个字符串之间建立一个普通字母的索引,这是可行的,但现在,我不明白为什么不可行。如果你能解释一下我应该如何看待这个练习,我将不胜感激。谢谢

可以使用集合来存储元音,在集合中搜索的时间复杂度为O(1)


可以使用集合存储元音,在集合中搜索的时间复杂度为O(1)


在您的代码
s
中似乎有一个字符串列表。您处理的每个字符串都将位于
j
变量中,因此您对
len(s)
s[…]
的使用将索引列表
s
,而不是字符串
j
的字符。因为直到最后一行(
print(j[i])
)之前,您在该错误中是一致的,所以在该行检测到错误,但问题实际上是在对
s
的每一次引用上,而不是
j

顺便说一句,你真的不需要一套。您可以对常规字符串使用
in
运算符。对于少数项目,使用您目前所学的基本工具,这可能会提供足够的性能:

for j in s:
    for i in range(len(j)):
        if j[i] in "aeiou":
            print(i,j[i])

在您的代码
s
中似乎有一个字符串列表。您处理的每个字符串都将位于
j
变量中,因此您对
len(s)
s[…]
的使用将索引列表
s
,而不是字符串
j
的字符。因为直到最后一行(
print(j[i])
)之前,您在该错误中是一致的,所以在该行检测到错误,但问题实际上是在对
s
的每一次引用上,而不是
j

顺便说一句,你真的不需要一套。您可以对常规字符串使用
in
运算符。对于少数项目,使用您目前所学的基本工具,这可能会提供足够的性能:

for j in s:
    for i in range(len(j)):
        if j[i] in "aeiou":
            print(i,j[i])


对于s中的j,您不需要
。删除它并将
print(j[i])
更改为
print(i)
哦,天啊,我把自己弄复杂了,谢谢!我可能也想打印元音本身,idk。非常感谢。你也应该注意大写字母。类似于“aeiou”中的if letter.lower()的
可能会有用。是的,我完成了这项工作,因为我没有使用“A”的0索引,现在也可以了,谢谢!我是这样做的:对于范围内的I(len(s)):s=s.lower()如果s[I]=“a”或s[I]=“e”或s[I]=“I”或s[I]=“o”或s[I]=“u”:打印(I)”,那么s中的j不需要
。删除它并将
print(j[i])
更改为
print(i)
哦,天啊,我把自己弄复杂了,谢谢!我可能也想打印元音本身,idk。非常感谢。你也应该注意大写字母。类似于“aeiou”中的if letter.lower()的
可能会有用。是的,我完成了这项工作,因为我没有使用“A”的0索引,现在也可以了,谢谢!我是这样做的:对于范围内的I(len(s)):s=s.lower()如果s[I]=“a”或s[I]=“e”或s[I]=“I”或s[I]=“o”或s[I]=“u”:print(I)”使用元音作为列表type@Ratnesh在集合中搜索的时间复杂度是O(1),我没有考虑到这一点,因为我只了解了变量、函数、条件、迭代、索引,文本文件。假设set是另一个东西。无论如何谢谢你!set对象是一个无序的可散列对象集合,您可以查看感谢信息@kedderrac!使用元音作为列表type@Ratnesh在一个集合中搜索的时间复杂度是O(1),我没有考虑到这一点,因为我只了解了变量、函数、条件、迭代、索引和文本文件。假设set是另一个东西。无论如何谢谢你!set对象是一个无序的可散列对象集合,您可以查看感谢信息@kedderrac!