python列表二維
① 在 python 中使用二維數組
如果你需要使用二維數組,在 Python 中,除了 numpy 這個包之外,最簡單的方式就是使用 list 了。你可能認為可以這樣構建:
但是請你再仔細想一想,這樣做真的沒有問題嗎?
不要忘記了, Python 一切都是對象 這個問題,對象肯定存在引用的問題,尤其是可變對象。我們試著來改變其中一個元素:
很不幸,不是我們想像的那樣,它改變了多個元素。
來看一看 [ [0] * m ] * n 這個表達式,它首先創建 a = [ [0] * 4] ,然後構造 array = [a] * 3 ,這里 array 裡面是 a 的 3 個引用。
正確的構造,應該使用 列表推導式 ,而且非常 Pythonic :
② python 在二維列表中查找出包含指定值的子列表
如果 list 存儲了若干復雜結構的值,比如這樣的一個列表:
temp = [('a', 1, 1.5),
('b', 2, 5.1),
('c', 9, 4.3)]
你想找到其中是 ('b', XX, XX) 這樣的元素,其中 XX 可以為任意值。這種情況無法通過 index 函數來獲得,我們可以利用 sort 的 key 參數來實現。
list.sort(或者 sorted 函數)有一個 key 參數,你可以提供一個函數來作為排序的依據。此時我們可以傳入以下值:
temp.sort(key = lambda x:x[0]!='b')
隨後我們會發現,所有形如 ('b', XX, XX) 的元素全部浮動到了列表的頭部,此時我們訪問 temp[0] 就可以獲得想要查找的值了。
我們也可以寫一個簡單的函數:
findindex = lambda self,i,value:sorted(self,key=lambda x:x[i]!=value)[0]
那我們只需要這樣調用:
>>> findindex(temp,0,'b')
就會返回它找到的第一個值:
>>> ('b',2)
③ python 二維數組排序
python有自帶的sorted函數。
sorted 語法:
sorted(iterable, key=None, reverse=False)
iterable -- 可迭代對象。
key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
比如,對二維數組按照第一個元素排序:arr = list(sorted(arr, key=lambda x: x[0]))
④ 如何在python中創建二維列表
Python中創建二維列表/數組,即創建一個list,並且這個list的元素還是list。可以用列表解析的方法實現。
創建例子如下:
2d_list=[[0forcolinrange(cols)]forrowinrange(rows)]
其中cols, rows變數替換為你需要的數值即可,例如:
2d_list=[[0forcolinrange(9)]forrowinrange(9)]
#9*9的二維列表
⑤ python二維列表怎麼豎著切片
1、首先打開電腦,點開這個python的軟體。
2、其次點擊這個二維列表然後選擇豎著的方式然後點擊切片。
3、最後點擊保存就可以了。