【问题标题】:Finding multiple characters in a string: python3 [duplicate]在字符串中查找多个字符:python3 [重复]
【发布时间】:2018-12-09 21:43:52
【问题描述】:
我想在字符串 'akacja' 中找到字母 'a' 的所有索引。然而,python 似乎总是只返回它找到的第一个索引。
有什么解决办法吗?
感谢您的帮助。
【问题讨论】:
标签:
python
python-3.x
string
character
【解决方案1】:
您可以使用列表推导,因为 str.index() 和 str.find() 只会返回第一个索引:
s = 'akacja'
indexes = [i for i, c in enumerate(s) if c == 'a']
print(indexes)
# OUTPUT
# [0, 2, 5]
【解决方案2】:
你可以这样做……
indexes = [i for i,c in enumerate('akacja') if c == 'a']
上面的行使用列表理解,它是以下的简写:
indexes = []
for i,c in enumerated('akacja'):
if c == 'a':
indexes.append(i)
你也可以像这样使用正则表达式:
import re
indexes = [f.start() for f in re.finditer('a', 'akacja')]