我尝试使用这个:
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])