gpt4 book ai didi

python - 用python连接两个列表列表

转载 作者:行者123 更新时间:2023-12-05 01:31:05 25 4
gpt4 key购买 nike

我有两个列表列表

a = [[1,2],[5,3],[7,9]]
b = [[2,4], [6,7]]

我想将列表连接到

[[1,2,4],[5,3],[6,7,9]]

目标是如果列表中有相同的元素,它们将被连接起来。非常感谢任何帮助。

最佳答案

这应该适用于更一般的情况:

def connected_components(list_of_lists):
""" based on Howard's answer https://stackoverflow.com/a/4842897/10693596 """
temp_list_copy = list_of_lists.copy()
result = []
while len(temp_list_copy)>0:
first, *rest = temp_list_copy
first = set(first)

lf = -1
while len(first)>lf:
lf = len(first)

rest2 = []
for r in rest:
if len(first.intersection(set(r)))>0:
first |= set(r)
else:
rest2.append(r)
rest = rest2
result.append(list(first))
temp_list_copy = rest
return result


a = [[1,2],[5,3],[7,9]]
b = [[2,4], [6,7]]

a = connected_components(a)
b = connected_components(b)

for n, i in enumerate(a):
combined_list = a[n]+ [jj for j in b if set(j).intersection(set(i)) for jj in j]

a[n] = sorted(list(set(combined_list)))

print(a)

或者下面是一个更 pythonic 的版本:


result = [
sorted(
set([
k
for j in b
for k in (set(i)|set(j) if set(i)&set(j) else set(i))
])
)
for i in a
]
print(result)

关于python - 用python连接两个列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66504325/

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