通常情况下,我们用find可以获取字符串中某个给定字符的索引,但是find方法只能给出字符串中第一次出现此字符的索引,如果我们需要获取给定字符的全部索引的话,目前想到了两个方法。
第一种.最笨的方法:去循环遍历字符串,找到相等的位置就记录下来·。
def find_all(data, s):
r_list = []
for r in range(len(data)):
if data[r] == s:
r_list.append(r)
print(r_list)
data = 'afegjijefoeghhijowefnhudishujewnfuwifdnfe'
find_all(data, 'e')
结果如下:
第二种.使用lambda表达式,和第一种原理一样,但是简洁很多。
find_all = lambda data, s: [r for r in range(len(data)) if data[r] == s]
data = 'afegjijefoeghhijowefnhudishujewnfuwifdnfe'
r_list = find_all(data, 'e')
print(r_list)
结果如下: