在列表中根据项内部分字符串查找所有索引位置

101 投票
5 回答
151695 浏览
提问于 2025-04-17 15:43
mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]

我需要找出所有包含 'aa' 的项目的位置索引。我在把 enumerate() 和部分字符串匹配结合起来时遇到了麻烦。我甚至不确定我是否应该使用 enumerate。

我只需要返回这些位置索引:0,2,5

5 个回答

12

没有使用 enumerate() 的情况:

>>> mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]
>>> l = [mylist.index(i) for i in mylist if 'aa' in i]
>>> l
[0, 2, 5]
24

你用 enumerate() 的想法是对的。

indices = []
for i, elem in enumerate(mylist):
    if 'aa' in elem:
        indices.append(i)

另外,你也可以用列表推导式来实现:

indices = [i for i, elem in enumerate(mylist) if 'aa' in elem]
167

你可以在 enumerate 这个函数里使用 列表推导式

indices = [i for i, s in enumerate(mylist) if 'aa' in s]

撰写回答