python - TypeError: unhashable type: 'list' 如何从数据列表中获取出现
问题描述
我有一个这样的列表:
list A = [['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['Proemine
nceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS']['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS']
, ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCR
S'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RailPCRS'], ['RasterPCRS'], ['SeuilPCRS']]
我怎样才能发现出现并获得一个新列表[ProeminenceBatiPCRS, RailPCRS]
?我试过这个,但我总是有同样的错误:
data = set(listA)
print(data)
错误 :
TypeError: unhashable type: 'list'
解决方案
list
是有序结构(列表中的项目是有序的),而是set
无序的。所以你可以做my_list[1]
,但不能my_set[1]
。问题是,你基本上有一个字符串列表,但每个字符串也在一个单独的列表中。这些内部列表无法添加到集合中。所以你需要从他们自己的列表中去嵌入你的字符串,像这样:
list_A = [['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'],['RailPCRS'], ['RailPCRS']]
unwrapped_list = [internal_list[0] for internal_list in list_A]
set_A = set(unwrapped_list)
>>> print(list_A)
>>> print(unwrapped_list)
>>> print(set_A)
[['ProeminenceBatiPCRS'], ['ProeminenceBatiPCRS'], ['RailPCRS'], ['RailPCRS']]
['ProeminenceBatiPCRS', 'ProeminenceBatiPCRS', 'RailPCRS', 'RailPCRS']
{'RailPCRS', 'ProeminenceBatiPCRS'}
如果您真的想要列表中的唯一单词而不是集合,请在末尾添加:
unique_list = list(set_A)
>>> print(unique_list)
['RailPCRS', 'ProeminenceBatiPCRS']
请注意,如果您的内部列表中包含超过 1 个字符串,您将需要调整此代码,该代码仅从每个内部列表中获取第一个字符串。
推荐阅读
- java - Corda LinearState:尝试将消费状态从一个所有者转移到另一个所有者
- android - 在运行时下载 MLKit 人脸检测模型
- typescript - 在 js 文件中为匿名函数导出创建声明
- javascript - 在单个excel中下载两个数据表
- python - 使 TextCtrl 随窗口缩放
- arrays - Angular,无法从 Web 服务 (JSON) 获取值列表
- android - 如何在Android上实现实例分割?
- c# - Microsoft.Azure.Cosmos.Table 和 Microsoft.WindowsAzure.Storage 之间的 ExecuteQuerySegmentedAsync 性能显着下降
- python - 如何为多个插值加速 scipy.map_coordinates?
- amazon-web-services - Amazon Connect 停止通话录音