根据索引值搜索二维嵌套列表

时间:2020-09-05 08:54:22

标签: python list

我想在2d嵌套列表中搜索一个字符串,并在同一嵌套列表中获取下一个值。

list_1=[["a", "b"], ["c", "d"], ["a", "e"],["c", "f"]]
search="c"

示例:如果我搜索“ c”,则应获取元素“ d”和“ f”,并假设如果我搜索“ a”,则应返回“ b”和“ e”。

这是我尝试过的。我能够根据需要返回下一个元素的索引,这也是嵌套列表的形式,但是我无法获取元素本身。请提供一些建议。

out = [[elem,elen+1] for elem,i in enumerate(list_1) for elen,y in enumerate(i) if search in y]
#[[1, 1], [3, 1]]

注意:没有硬编码,并且不是重复的。如果维持秩序,那就更好了。

2 个答案:

答案 0 :(得分:1)

下方

list_1=[["a", "b"], ["c", "d"], ["a", "e"],["c", "f"]]
search="c"
list_2 = [e[1] for e in list_1 if search == e[0]]
print(list_2)

输出

['d', 'f']

答案 1 :(得分:1)

您可以使用numpy数组:

import numpy as np

list_1=np.array([["a", "b"],
       ["c", "d"],
       ["a", "e"],
       ["c", "f"]])
list_result = list_1[list_1[:,0]=="c"]
print(list_result[:, 1])