通过匹配列表的字符串列表获取列表索引

时间:2018-11-27 12:44:29

标签: python python-3.x

p = [['a','b','c'],['x','y','z']]

如何获取包含字符串(char)'a'的列表索引?

列表中的

'a'不起作用,或者至少我无法弄清楚。

3 个答案:

答案 0 :(得分:1)

使用in,但在子列表中,而不在列表的全局列表中。与enumerate组合以获取匹配列表的索引

p = [['a','b','c'],['x','y','z']]

idx = [i for i,sublist in enumerate(p) if 'a' in sublist]

为您提供索引列表。这里我们只有一个元素:

>>> idx
[0]

您可以使用相同的技术来计算子列表BTW中a的索引(使用idx = [i for i,sublist in enumerate(p) if 'a' in sublist]

要获取唯一值或None,只需对生成器理解进行一次迭代即可:

idx = next((i for i,sublist in enumerate(p) if 'a' in sublist),None)

答案 1 :(得分:0)

尝试一下:

list_count = 0
for x in list:
   list_count += 1
   if 'a' in x:
       print ("Index in sublist" %(x.index('a')))
       print("Index of outer list" %(list_count))

答案 2 :(得分:0)

如果将最大嵌套深度设置为2,则可以使用以下代码获取两个索引。

 ViewBag.result =response.Content.ReadAsAsync<IEnumerable<Absence().Result;

输出:

p = [['a','b','c'],['x','y','z']]

def get_indices(p, search_for='a'):
    return [(i, sublist.index(search_for)) for i,sublist in enumerate(p) if search_for in sublist]

print('a', get_indices(p, search_for='a'))
print('b', get_indices(p, search_for='b'))
print('c', get_indices(p, search_for='c'))
print('x', get_indices(p, search_for='x'))
print('y', get_indices(p, search_for='y'))
print('z', get_indices(p, search_for='z'))
print('k', get_indices(p, search_for='k'))