如何在不使用 Python 中的枚举或正则表达式的情况下查找字符串中字符的所有位置



我尝试使用这个:

def charFinder(st,ch):
    for i in range(len(st)):
        if st[i]==ch:
            print(st[i])
charFinder("abc abc abc", "a")

但这只打印位置 i 处的字母,使用 st.find(ch) 只打印第一次出现。我将如何使用 for 循环找到所有出现的情况,以便它打印以下内容:

0
4
8

试试这个:

message = 'i love the way this works'
indexes = {}
for character, index in zip(message, range(len(message))):
       if character in indexes.keys():
              indexes[character] += [index]
       else:
              indexes.update({character: [index]})
print(indexes)

试试这个方法:

def charFinder(st, ch):
    ch_pos_arr = []
    for i in range(len(st)):
        if st[i]==ch:
            ch_pos_arr.append(i)
    print(ch_pos_arr)

如果你想要更紧凑的语法,你可以使用列表理解:

def charFinder(st, ch)
    print([i for i in range(0, len(st)) if st[i] == ch])

最新更新