python 二維以上的多維列表 陣列去重

2021-10-10 17:44:31 字數 579 閱讀 7119

一維的list去重可以用set(list),但是二維的list轉set就會報錯 unhashable type: 『list』

原因是set傳進來的是不可雜湊的變數

python中那麼哪些是可雜湊元素?哪些是不可雜湊元素?

可雜湊的元素有:int、float、str、tuple

不可雜湊的元素有:list、set、dict

為什麼 list 是不可雜湊的,而 tuple 是可雜湊的

(1)因為 list 是可變的在它的生命期內,你可以在任意時間改變其內的元素值。

(2)所謂元素可不可雜湊,意味著是否使用 hash 進行索引

(3)list 不使用 hash 進行元素的索引,自然它對儲存的元素有可雜湊的要求;而 set 使用 hash 值進行索引

正確做法:將list轉成tuple,這樣就可以用set去重。

dic =

list

(set([

tuple

(t)for t in dic]))

dic =

[list

(v)for v in dic]

python二維列表

class vector2 向量 def init self,x 0,y 0 self.x x self.y y 將函式轉移到類中,就是靜態方法 staticmethod 向右取值 defright return vector2 0,1 向上取值 staticmethod defup return ...

python二維列表排序

假設有乙個學生列表儲存了學號,姓名,年齡資訊 students 3,jack 12 2,rose 13 1,tom 10 5,sam 12 4,joy 8 按學號順序排序 sorted students,key lambda x x 0 1,tom 10 2,rose 13 3,jack 12 4,...

Python與二維列表

列表中的元素還可以是另乙個列表,這種列表稱為多為列表。只有一層巢狀的多維列表稱為二維列表。語法 變數 元素1,元素2 元素1,元素2 使用列表儲存員工的工號 姓名和月薪資訊 使用for迴圈遍歷輸出所有的員工資訊 employee infos a1 王保華 10000 a2 李維新 5200 a3 張...