python - 不可散列的类型:“列表”
问题描述
基本上,我首先将字典放入列表中,然后在该列表中取出 6 个键。我还让用户输入一些值。现在我想把键和值放回另一个字典。
我试过把它放在普通的字典格式中,例如:
eliminate1 = {newcouple1:Couple01,newcouple2:Couple02,newcouple3:Couple03,newcouple4:Couple04}
import operator
from operator import itemgetter
eliminate1 = {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'
解决方案
Lists
是不可散列的,因为它们是可变的。你能想象如果 adictionary
key
被分配给 a value
,然后它key
被改变了吗?这将是一场噩梦。
转换lists
成tuples
使它们可散列
推荐阅读
- batch-file - MSDOS 6.22 How to get batch directory?
- laravel - 使用 VerifyEmail 特征更新用户电子邮件地址
- ios - 如何在 UIBezierPath iOS 中添加渐变
- laravel - When I register any user but remember_token() Always Null In Db During Insertion
- rest - HERE Maps: Realtime coverage for public transit API
- c - 按关键字关闭窗口
- .net - How do I get a partial view to pass related objects to post method in .NET MVC?
- javascript - Replacing style attribute of a html element bu class
- angular - SignalR Asp.netcore and angular ( WebSocket is not in the OPEN state) disconnection for signalR.HttpTransportType.WebSockets
- ruby - Karafka start_from_beginning not working as expected