python - 在列表列表中查找重复列表?
问题描述
我有一个列表列表,如下所示:
data = [[4,5,0],[3,4,0],[4,5,0],[1,2,0],[1,2,0],[4,5,0],[3,4,0],[2,3,0]]
我想要的是返回一个唯一列表的列表(顺序无关紧要):
unique_data =[[4,5,0],[3,4,0],[1,2,0],[2,3,0]]
我的第一个想法是:
for x,y in zip(data, data[1:])):
if x == y:
unique_data.append(x)
但这只会比较两个直接相邻的列表。非常感谢任何其他想法。谢谢你。
解决方案
您可以做的一件事是将列表转换为元组(因为元组是可散列的并且可以放入 a 中set
),然后将其转换为一个集合以过滤掉重复项,然后再返回。
data = [[4,5,0],[3,4,0],[4,5,0],[1,2,0],[1,2,0],[4,5,0],[3,4,0],[2,3,0]]
unique_data = [list(tup) for tup in set(tuple(lst) for lst in data)]
# [[2, 3, 0], [3, 4, 0], [4, 5, 0], [1, 2, 0]]
推荐阅读
- python - 无法更改特定位置的数据框的值
- laravel - Laravel 刀片中的多重防护
- python - 从 url 更改 twitter 横幅
- javascript - 如何将元素的背景位置更改为新的 CSS 属性?
- reactjs - 将组件推入数组后更改组件的道具?
- windows - 适用于 Windows 的 Docker 桌面,带有 Linux 容器和 TLS
- c# - 在 Unity 中,使用 csv 中的动作捕捉位置和旋转来移动刚体
- javascript - 在 MERN 项目上使用 MongoDB 设置 ExpressJS
- javascript - node js request-promise,出错时重试请求
- webview - 在 Android TV 上升级 Android WebView 后,hls 264 视频不再播放