打印特定字符的所有字符串索引位置

3

如果我有一个字符串,比如s = '1084271054',并且想要打印出所有 0 的索引位置:

0 - 1, 7

这个问题最基本的解决方法是什么?

1
SO不是一个编程服务。展示一下你解决这个问题的工作,你可能会得到一些帮助。 - AmmoPT
可能是python - find char in string - can I get all indexes?的重复问题。 - Space Impact
抱歉,我是个新手。 - Budju
3个回答

2
[i for i, c in enumerate(s) if c=='0']
Out: [1, 7]

1
也许是这样的

可能像这样

>>> idx=[i for i in range(len(s)) if s[i]=='0']
>>> idx
[1, 7]

"Edit:" (编辑:)
>>> print ', '.join(str(i) for i in idx)
1, 7

这看起来不错,有没有办法从数字中去掉那些讨厌的 [ ]? - Budju

0
将字符串传递给enumerate函数,该函数返回索引和字符的可迭代对象。然后您可以遍历它并检查字符是否为'0',如果是,则打印索引:
for i,c in enumerate(s):
    if c == '0':
        print(i)

输出结果为:

1
7

如果你希望它们在一行上被逗号分隔,那么你可以使用str.join和生成器:
print(', '.join(str(i) for i,c in enumerate(s) if c == '0'))

这会给出:

1, 7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接