返回包含特定字符串的列表列表中的列表索引

时间:2016-10-30 23:57:56

标签: python string list indexing return

我想我已经接近这个功能,但我遇到了麻烦。我需要在包含特定字符串的列表列表中返回列表的索引。例如,如果列表列表是[['。',' c',' e'' g'],[ ' d',','' f']]我的目标是寻找' c'然后该函数需要返回0,因为它在第一个列表中。或者,如果目标是寻找' h'它会返回1,因为它在第二个列表中。

这是我到目前为止的代码:

def which_one(lst):
    for row in lst:
        for col in lst:
            if col == 'c':
                return col
            else:
                continue

1 个答案:

答案 0 :(得分:2)

考虑一种避免使用两个循环的不同方法。在列表中使用enumerate只需要迭代一次,每次迭代都会有两个值,每个值代表一个代表索引的运行计数,下一个代表你的值。您只需使用in检查您感兴趣的字符,然后返回索引。观察这个例子:

def find_index(l, c):
    for i, v in enumerate(l):
        if c in v:
            return i

res = find_index([['.','c','e','g'],['d', 'h','t','f']], 'c')

print(res) # 0

res = find_index([['.','c','e','g'],['d', 'h','t','f']], 't')

print(res) # 1

只是为了添加它,如果你想收集你正在查找的角色的所有索引,这可以通过理解来完成:

def all_indexes(l, c):
    return [i for i, v in enumerate(l) if c in v]

演示:

res = all_indexes([['.','c','e','g'],['d', 'h','t','f', 'c']], 'c')

print(res) # [0, 1]