一維的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 張...