gpt4 book ai didi

python - 另一个合并列表列表,但最 pythonic 方式

转载 作者:行者123 更新时间:2023-11-28 19:37:31 24 4
gpt4 key购买 nike

我尝试找到几个选定答案的答案,但它们似乎不起作用。我必须合并列表列表。

[[283, 311], [311, 283, 316], [150, 68], [86, 119], [259, 263], [263, 259, 267], [118, 87], [262, 264], [264, 262], [85, 115], [115, 85], [244, 89], [140, 76, 82, 99], [236, 111], [ 330, 168], [76, 63, 107, 124, 128, 135, 140], [131, 254], [254, 131], [21, 38], [38, 21], [220, 291] , [291, 220], [296, 46], [64, 53, 57, 61, 63, 65, 66, 76, 96, 100, 103, 114, 123, 127, 128, 130, 148, 149] , [274, 240], [157, 225, 234], [225, 247], [233, 44], [89, 244], [80, 101], [210, 214], [78, 155] , [55, 139], [102, 74, 75, 132], [105, 252], [149, 55, 59, 63, 71, 73, 81, 100, 102, 116, 122, 138, 146] , [97, 231], [231, 97], [155, 78], [239, 305], [305, 239], [145, 94, 248], [147, 150], [61, 64] , [152, 219], [219, 152], [246, 250], [252, 105], [223, 235], [235, 223], [237, 60, 344], [344, 237] , [182, 129], [331, 117], [12, 2, 8, 10, 13, 15], [250, 246]]

例如,我想要的是 [283,311] 存在于 [311,283,316] 中。那么两者都应该合并,只在上面的列表中制作一个列表。如果它存在于其他列表中,我需要合并一个列表。

请注意,我可以使用循环内循环来完成它,但正在寻找一种 pythonic 方式来实现这一点。此外,如果您知道如何合并共享至少一个公共(public)元素的列表,请分享。

编辑:

请不要忘记,寻找 pythonic 方法。我认为使用任何核心 Pythonic 方法是不可能的。那么下一个可能的解决方案应该是使用循环。我需要效率,因为必须每半小时将列表列表与超过一百万个项目合并。我确实在 for 循环中使用了 for 循环,然后比较了两个项目,但这花费了太多时间。

最佳答案

回答你的后一个问题;这是一个connected-components问题。

>>> import networkx as nx
>>> G = nx.Graph()
>>> for component in l:
...: G.add_edges_from(pairs(component))
...:
>>> nx.connected_components(G)
# the answer

关于python - 另一个合并列表列表,但最 pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com