亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不可散列的類型:“列表”

不可散列的類型:“列表”

米琪卡哇伊 2022-01-18 16:05:25
基本上,我首先將字典放入列表中,然后在該列表中取出 6 個鍵。我還讓用戶輸入一些值?,F在我想把鍵和值放回另一個字典。我試過把它放在普通的字典格式中,例如:eliminate1 = {newcouple1:Couple01,newcouple2:Couple02,newcouple3:Couple03,newcouple4:Couple04}import operatorfrom operator import itemgettereliminate1 = {newcouple1:Couple01,newcouple2:Couple02,newcouple3:Couple03,newcouple4:Couple04}sorted_eliminate1 = sorted(eliminate1.items(), key=operator.itemgetter(1))gone = print("These Couples have been eliminated: ",dict(sorted_eliminate[0:2]))gone1 = dict(sorted_eliminate1[0:2])remaining01 = print("These are the remaining couples: ",dict(sorted(eliminate1.items(), key = itemgetter(1))[2:]))remaining1 = dict(sorted(eliminate1.items(), key = itemgetter(1))[2:])運行代碼時出現錯誤:eliminate1 = {newcouple1:Couple01,newcouple2:Couple02,newcouple3:Couple03,newcouple4:Couple04}這是錯誤: TypeError: unhashable type: 'list'
查看完整描述

2 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

Lists是不可散列的,因為它們是可變的。你能想象如果 adictionary key被分配給 a value,然后它key被改變了嗎?這將是一場噩夢。

轉換liststuples使它們可散列


查看完整回答
反對 回復 2022-01-18
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

為什么字典這么快?


因為,當您查找某些內容時,python 不會查找該對象。相反,它為每個對象分配一個整數(哈希值),然后搜索該整數。


但是,僅當您將其插入字典時才會發生這種情況。如果對象的值稍后發生變化,則哈希值不會,字典將無法找到該對象。


因此,您不能將可變對象放入字典中。對于列表,最簡單的解決方案是將其轉換為元組,例如,而不是


lst = [1, 2, 3]

x = { lst: "hello" }


lst  = [1, 2, 3]

x = { tuple(lst): "hello" }


查看完整回答
反對 回復 2022-01-18
  • 2 回答
  • 0 關注
  • 273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號