Python嵌套列表内部比较和编辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python嵌套列表内部比较和编辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1254字,纯文字阅读大概需要2分钟。
内容图文
![Python嵌套列表内部比较和编辑](/upload/InfoBanner/zyjiaocheng/680/faa82dc146fd48d98751464e9862f7ad.jpg)
我一直在尝试找出答案,最简单的解释方法是使用示例:
a = [[1, 2, 4], [2, 5], [0, 3, 7, 8], [12, 3, 6], [18, 14]]
这是我的清单.
我需要以一个列表结尾,该列表包含中的所有列表的列表,这些列表包含添加在一起的重叠元素.
result = [[1, 2, 4, 5], [0, 3, 6, 7, 8, 12], [14, 18]]
我将如何处理?
亲切的问候,
达奎克
解决方法:
a = [[1, 2, 4], [2, 5], [0, 3, 7, 8], [12, 3, 6], [18, 14]]
result = []
for s in a:
s = set(s)
for t in result:
if t & s:
t.update(s)
break
else:
result.append(s)
这将一步一步地遍历列表,并根据当前子列表创建一个集合.然后,它将检查结果,是否存在另一个带有非空交集的t.在这种情况下,来自的项目会添加到该集合t中.如果不存在带有非空交集的t,则s是一个新的独立结果,可以附加到结果列表中.
像这样的问题对于fixed-point iteration也是一个很好的例子.在这种情况下,只要您仍然可以找到重叠的列表,就可以查看列表并继续合并子列表.您可以使用itertools.combinations实现此功能,以查看子列表对:
result = [set(x) for x in a] # start with the original list of sets
fixedPoint = False # whether we found a fixed point
while not fixedPoint:
fixedPoint = True
for x, y in combinations(result, 2): # search all pairs …
if x & y: # … for a non-empty intersection
x.update(y)
result.remove(y)
# since we have changed the result, we haven’t found the fixed point
fixedPoint = False
# abort this iteration
break
内容总结
以上是互联网集市为您收集整理的Python嵌套列表内部比较和编辑全部内容,希望文章能够帮你解决Python嵌套列表内部比较和编辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。