Python |从二维数组中提取元素
Python | extracting elements from 2D array
由于我对 python 还很陌生,所以我什至不确定如何表达我的问题。我想要完成的基本概念是能够在二维数组中搜索某些内容并检索正确的值以及与该值关联的值(抱歉我的错误解释)
例如
array=[[1,a,b],[2,x,d],[3,c,f]]
如果用户想要查找 2
,我希望程序检索 [2,x,d]
,如果可能,将其放入普通 (1D) 数组中。同样,如果用户搜索 3
,程序应检索 [3,c,f]
.
提前谢谢你(如果可能的话,我想要一个不涉及 numpy 的解决方案)
也许是这样的?
def search(arr2d, value):
for row in arr2d:
if row[0] == value:
return row
您可以做一个简单的 for
循环,并使用内置的 in
语句:
def retrieve_sub_array(element):
for sub_array in array:
if element in sub_array:
return sub_array
试试这样的东西:
def find(value, array):
for l in array:
if l[0]==value:
return l
或者如果您想了解更多信息:
array[list(zip(*array))[0].index(value)]
如果适合您的问题,您可以使用字典:
>>> dict={1:['a','b'],2:['x','d'],3:['c','f']}
>>> dict[2]
['x', 'd']
比在每个列表中线性搜索正确的索引更有效。
由于我对 python 还很陌生,所以我什至不确定如何表达我的问题。我想要完成的基本概念是能够在二维数组中搜索某些内容并检索正确的值以及与该值关联的值(抱歉我的错误解释)
例如
array=[[1,a,b],[2,x,d],[3,c,f]]
如果用户想要查找 2
,我希望程序检索 [2,x,d]
,如果可能,将其放入普通 (1D) 数组中。同样,如果用户搜索 3
,程序应检索 [3,c,f]
.
提前谢谢你(如果可能的话,我想要一个不涉及 numpy 的解决方案)
也许是这样的?
def search(arr2d, value):
for row in arr2d:
if row[0] == value:
return row
您可以做一个简单的 for
循环,并使用内置的 in
语句:
def retrieve_sub_array(element):
for sub_array in array:
if element in sub_array:
return sub_array
试试这样的东西:
def find(value, array):
for l in array:
if l[0]==value:
return l
或者如果您想了解更多信息:
array[list(zip(*array))[0].index(value)]
如果适合您的问题,您可以使用字典:
>>> dict={1:['a','b'],2:['x','d'],3:['c','f']}
>>> dict[2]
['x', 'd']
比在每个列表中线性搜索正确的索引更有效。