试图找到列表中的所有逗号,这有什么问题?

Jam*_*fun 3 python string methods list

a = [',', 'hello',',', 'pear']

for i in a:
    d = 0
    c = []
    b = a[d]
    if b == ',':
        c.append(b)
        d += 1
    else:
        d += 1

print c
Run Code Online (Sandbox Code Playgroud)

当代码中有两个逗号时,这似乎只返回一个逗号.我怎样才能解决这个问题?

NPE*_*NPE 5

问题是你d在每次迭代开始时重置为零,并清除c.

您需要在循环外部移动初始化代码.

在执行此操作时,您可以像这样简化整个循环:

a = [',', 'hello',',', 'pear']

c = []
for b in a:
    if b == ',':
        c.append(b)

print c
Run Code Online (Sandbox Code Playgroud)

现在观察这样的代码非常适合表达为列表理解:

a = [',', 'hello',',', 'pear']

c = [b for b in a if b == ',']

print c
Run Code Online (Sandbox Code Playgroud)