Python 基于索引值搜索二维嵌套列表
我想在二维嵌套列表中搜索字符串,并在同一嵌套列表中获取下一个值Python 基于索引值搜索二维嵌套列表,python,list,Python,List,我想在二维嵌套列表中搜索字符串,并在同一嵌套列表中获取下一个值 list_1=[["a", "b"], ["c", "d"], ["a", "e"],["c", "f"]] search="c" 示例:如果我搜索“c”,那么我应该得到元素“d”和“f”,并且假设如果我搜索“a”,它应该返回“b”和“e” 这是我试过的
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]]
注意:没有硬编码,也不是副本。如果能维持秩序就更好了。如下
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']
下面
输出
['d', 'f']
您可以使用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])
您可以使用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])