python - [[a,b], [b,a], [c,d], [d,c]] 等第二对删除
问题描述
如果我有一个列表,例如
[[a,b], [b,a], [c,d], [d,c]]
但是如果字母对列表不相邻,我如何遍历列表并最终只得到一个字母对?
解决方案
如果您不关心订单,那么最简单的方法是使用sets和freezesets:
lst = [[a,b], [b,a], [c,d], [d,c]]
result = [list(x) for x in {frozenset(t) for t in lst}]
# result output: [[a,b], [c,d]]
由于frozenset([a,b]) == frozenset([b,a])
,集合推导{frozenset(t) for t in lst}
将只包含每对一次。外部列表推导将frozensets 集合转换回列表列表。
推荐阅读
- python - ImportError:无法导入名称“pkg_resources”
- c - 将条件字符添加到 C 中的打印语句
- .net - 通用动作的表达式树
- python - python - 如何从python中sklearn中的cross_val_predict获取排序的概率和名称
- tensorflow - 如何编写自定义 keras 层来重新采样 3D 体积?
- node.js - 如何修复应该显示数据的授权的 [object Object] 响应?
- python - xarry 绘图 - 具有最大值的像素不会被设置的级别淹没
- python - re.match() 在python中具有固定模式
- google-maps - 为什么谷歌地图在加载时会切断这个网址的最后两个地址?
- apache-nifi - 在分布式 nifi 集群和电子邮件通知上合并流文件的问题