2017-03-02 119 views
0

我已經開始編碼最近,我的首選語言是python。我遇到了一個問題,我遇到了麻煩。查找二維數組中的點

問題是在2d數組中找到索引,其中數字大於左右數字,小於上下數字,反之亦然。

我知道一個二維數組可以被定義爲list = [[1, 2], [3, 4], [5, 6]],但是對於計算問題的算法是在目前超出我的範圍。有人可以提供解決方案嗎?

+0

你說的左,右,上,下是什麼意思?什麼是參考?問題中給定列表的答案是什麼?你能舉一個更高維數組的例子嗎? –

+0

也許我給了一個不好的例子,說你給了數字x和一個二維數組的列表= [[1,2,3,4,5,6],[1,2,3,4,5,6 ],[1,2,3,4,5,6]]'如果x = 4找到數組中的所有點,其中x大於向左和向右的數字並且小於上面和下面的數字,反之亦然。我的理解是將二維數組視爲矩陣 – mcfellows

+0

'查找數組中的所有點'什麼是點?你在評論中給出的例子中的輸出是什麼?我可以問問題的原始來源嗎? –

回答

0

min(enumerate(list[0]),key=lambda x:x[1])將在列表[0]((0,1))中找到具有最小值的(索引,值)對。 max(enumerate(list[0]),key=lambda x:x[1])會找到最大的。

注意(因爲你說你是新的),這是一樣的:

def first_index(L): 
    return l[1] 
min(enumerate(list[0]),key=first_index) 

new_list=[L[0] for L in list]將在這個例子中,每個列表([1,3,5]包含0個元素的列表)。你可能會想使用for index in range(len(list[0]):

注意每一列這樣做(因爲你是新的),這是一樣的:

new_list=list() 
for L in list: 
    new_list.append(L[0])