我有一个列表users_with_invites_ids_list
,由循环形成,在这个循环中我将值附加到列表,在python中,如下所示:
...[ObjectId('55119e14bf2e4e010d8b48f2')], [ObjectId('54624128bf2e4e5e558b5a52')], [ObjectId('53a6e7bc763f4aa0308b4569')], [ObjectId('55241823bf2e4e59508b494c')]]
当我尝试:
users_with_invites_ids_set = set(users_with_invites_ids_list)
我得到:
TypeError: unhashable type: 'list'
如何将此列表转换为集合?
编辑
根据回答,我已经做了以下工作:
#convert list to set
first_tuple_list = [tuple(lst) for lst in users_with_invites_ids_list]
users_with_invites_ids_set = set(first_tuple_list)
产生以下结果:
(ObjectId('542ac5a6763f4a82188b4a51'),), (ObjectId('54496fe6bf2e4efe348bd344'),), (ObjectId('54c96339bf2e4ee62c8b48e0'),)])
我如何得到每一个ObjectId
而不在每个()
周围。这使我无法将这组ID与其他组的ID进行比较。
虽然接受的答案是好的,但是如果您想要比较简单的答案,并且不想处理元组的不变性,那么您也可以尝试使用传统的字符串比较:
您需要将内部列表转换为元组,假设这些
ObjectId('55119e14bf2e4e010d8b48f2')
中的每一个都是散列的:工作示例:
如果您希望单独创建
ObjectId
的集合,可以执行以下操作:相关问题 更多 >
编程相关推荐