有一组数据不知道怎么用python处理,希望能指导写一下

有这么一组数据类似这样
1 2
5 6
2 3
5 7
9 10

希望生成如下列表
List1=[1,2,3]
List2=[5,6,7]
List3=[9,10]


from collections import defaultdict


arr_list = [[1, 2], [5, 6], [2, 3], [5, 7], [9, 10]]
p = [i for i in range(10+1)]  # 10是arr_list中最大的那个数,如果数据过于稀疏可将其离散化


def find(x):
    if p[x] != x:
        p[x] = find(p[x])
    return p[x]


res = defaultdict(list)  # 用dict不行,会出现KeyError

for item in arr_list:
    fa = find(item[0])
    fb = find(item[1])
    if not res[fa]:
        res[fa].append(item[0])
    if not res[fb]:
        res[fb].append(item[1])
    if fa != fb:
        p[fa] = fb
        res[fb].extend(res[fa])
        res[fa] = []

for item in res:
    if res[item]:
        print(res[item])

如果你连二维list也不知道,思路还停留在一堆不一样的变量上,那这个问题是无解的
二维list,遍历一下,判断一下在哪个里面有相同的,那就把不同的也塞进对应的维度里
关键是你给的数据是比较简单的
如果有这样一组数据
1 2
3 4
2 3
那么一开始1 2和3 4是分开存放的,直到遇到了2 3,要求把它们全部合并到一起,这个是需要特殊处理的

s = """
1 2
5 6
2 3
5 7
9 10
"""

lines = s.split("\n")
List=[]
for l in lines:
if l.strip() == "": continue
li = l.strip().split(" ")
merged = False
for i,v in enumerate(List):
if len(set(li) & set(v)) > 0:
List[i] = sorted(list(set(li) | set(v)))
merged = True
break
if not merged:
List.append(li)

print(List)