我想我已经接近这个功能,但我遇到了麻烦。我需要在包含特定字符串的列表列表中返回列表的索引。例如,如果列表列表是[['。',' 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
答案 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]