循环使用python查找空间

mik*_*kal 0 python loops space

c = "ab cd ef gf"
n = []
for x in c:
    if x == " ":
        d = c.find(x)
        n.append(d)
print(n)
Run Code Online (Sandbox Code Playgroud)

我希望这段代码给我这样的东西。[2,5,8]但是,它给了我这个。[2,2,2]

请帮助我找到错误。谢谢。

Mar*_*yer 5

find()会找到第一个实例,因此它总是在索引2处找到空间。您可以随时随地跟踪索引,enumerate()因此不需要find()

c = "ab cd ef gf"
n = []
for i, x in enumerate(c):
    if x == " ":      
        n.append(i)
print(n)
Run Code Online (Sandbox Code Playgroud)

或者作为列表理解:

[i for i, x in enumerate(c) if x == " "]
Run Code Online (Sandbox Code Playgroud)