我想在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]]
注意:没有硬编码,并且不是重复的。如果维持秩序,那就更好了。
答案 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])