對不起,如果我得到的術語錯誤 - 我只是剛剛開始學習Python,而且我接受來自朋友的指令而不是實際的課程。數組中的搜索元素
我想搜索一個包含大量包含多個元素的數組的列表,並找到一些元素匹配的數組,但有一些不同。
在較不混淆的術語例如我有各自包含2個元素的陣列(我認爲這就是所謂的2D陣列?),以便列表:
list = [[1, 2], [2, 2], [3, 5], [4, 1], [5, 2], ...]
以我具體實例中,每一子陣列中的第一元件剛上升線性,但是第二元素幾乎是隨機的。我想僅通過第二個數字查找或排序數組。我可以從每個數組中刪除第一個數字:
list = [2, 2, 5, 1, 2 ...]
然後使用類似「如果list [X] == 1」發現「1」等
(邊注:我不是確定如果重複一個值,如何找到所有的值 - 我不記得我寫的是什麼,但它只會找到第一個匹配值的實例,例如它會檢測到第一個'2',而不是第二個或第三個)
但我想保留每個數組中的第一個值。我的朋友告訴我,你可以用一個帶有值和鍵的字典,這對我的例子很有用,但我想知道更一般的方法是什麼。
所以在我的例子,我希望如果我寫這樣的:
if list[[?, x]] == [?, 1]
然後它會找到數組,其中數組的第二個值是1,(即[4,1]在我的例子)而不關心第一個值。顯然它沒有工作,因爲'?'就我所知,它不是Python語法,但希望你能看到我正在嘗試做什麼?
因此,對於更一般的情況下,如果我有5個維數組列表,我想找到每個陣列的第二和第四值,我會寫:
if list[[?, x, ?, y, ?]] == [?, a, ?, b, ?]
而且,它還將匹配任何其中第二個元素的值爲'a',第四個元素的值爲'b'。
例如[3,a,4,b,7],[20,a,1,b,9],['cat',a,'dog',b,'fish']等都是可能的結果。命令。
所以我想知道是否有任何類似的方式來使用問號(但實際工作)的方法來表示數組中的元素可以有任何價值。
你是什麼意思的「數組」:一個Python'array.array',一個Python列表或'numpy.ndarray'? – Evert 2014-12-04 13:45:03
「我認爲這叫做2D陣列?」在這裏,我將它稱爲列表清單。如果你想要更適合的2D陣列,請使用'numpy'。 – Evert 2014-12-04 13:45:53
另一個命令:*從不*使用變量名稱的內置關鍵字(即,在這裏不要使用'list'作爲變量)。 – Evert 2014-12-04 13:47:04