python - 从具有不可散列元素的列表中取出唯一值
问题描述
所以我有以下列表:
test_list = ['Hallo', 42, [1, 2], 42, 3 + 2j, 'Hallo', 'Hello', [1, 2], [2, 3], 3 + 2j, 42]
现在我想从列表中获取唯一值并将它们打印在屏幕上。我尝试使用 set 函数,但由于列表中的 [1,2] 和 [2,3] 值,它不起作用(Type error: unhasable type: 'list') 。我尝试使用 append 和 extend 函数,但还没有提出解决方案。
期望:['你好',42,[1,2],(3+2j),'你好',[2,3]]
def unique_list(a_list):
a = set(a_list)
print(a)
a_list = ['Hallo', 42, [1, 2], 42, 3 + 2j, 'Hallo', 'Hello', [1, 2], [2, 3], 3 + 2j, 42]
print(unique_list(a_list))
解决方案
如果列表包含不可散列的元素,请repr
使用与集合一起使用的可散列键:
def unique_list(a_list):
seen = set()
for x in a_list:
key = repr(x)
if key not in seen:
seen.add(key)
print(x)
推荐阅读
- java - 尝试添加反应时出现 onGuildMessageReceived() 问题
- angular - 包含重复的“内容”项目。.net core angular 6 web app中assets文件夹中的.json文件
- ruby-on-rails - 如何仅使用状态码检查 Rails 中 API 的成功响应?
- python - 通过另一种策略引用一种策略
- c# - 在查询中过滤多个 Geo near 操作会发送错误
- javascript - 了解产量如何影响 JS 生成器中的返回值
- apache-spark - 如果不在列表中,如何替换值?
- excel - 从目录中已关闭的工作簿中获取单元格值 - 如何遍历所有现有文件?
- python - 使用 Pandas 进行聚合和分组
- r - 在同一个 geom_text 上使用 ggrepel 和 shadowtext