我正在尝试弄清楚如何编写代码,将给定的列表组合成两个列表,如下所示的Solution变量。基本上,哪段代码可以让我从
Crosspairs = [1,6], [4,2], [7,10], [3,5], [9,8]
Sharedpairs = [1,4], [3,9], [4,7], [3,7], [2,6], [2,10], [5,8], [10,5]
to
Solution = [1,4,7,3,9], [6,2,10,5,8]
每个列表中的数字顺序并不重要,重要的是每个列表中的值。例如,
[1,4,7,3,9]
和......一样好
[4,3,7,1,9]
此外,Crosspairs、Sharedpairs和Solution变量不一定都是某种类型。它们可以是列表的列表、字典或元组。
感谢所有帮助和反馈。
编辑:
我尝试过这个方法,它可以工作。虽然有多个for循环,但现在它足够了,除非有更好的方法被提出。
Sharedpairs = [[1,4], [3,9], [4,7], [3,7], [2,6], [2,10], [5,8], [10,5]]
Group1 = Sharedpairs[0]
Sharedpairs.remove(Sharedpairs[0])
for i, p in enumerate(Sharedpairs):
print(i,p)
if (p[0] in Group1):
Group1.append(p[1])
Sharedpairs.remove(p)
print('Group 1', Group1)
for i, p in enumerate(Sharedpairs):
print(i,p)
if (p[1] in Group1):
Group1.append(p[0])
Sharedpairs.remove(p)
print('Group 1', Group1)
for i, p in enumerate(Sharedpairs):
print(i,p)
if (p[0] in Group1):
Group1.append(p[1])
Sharedpairs.remove(p)
print('Group 1', Group1)
elif (p[1] in Group1):
Group1.append(p[0])
Sharedpairs.remove(p)
print('Group 1', Group1)
else:
print('Not in group')
continue
Group1
[1, 4, 7, 3, 9]