求问Python大神,怎样合并一个列表中的各个元素
我的列表是这样的list=[['0','16'],['1','13'],['16','34'],['13','15'],['1','28']]想要合并成这样[[0,16,...
我的列表是这样的list=[['0', '16'], ['1', '13'], ['16', '34'], ['13', '15'], ['1', '28']]
想要合并成这样[[0, 16, 34], [1, 13, 15], [1, 28]]
就是相当于如果list[i][1]=list[i][0]的话,就合并这两个元素,并且删掉重复项
感激不尽啊! 展开
想要合并成这样[[0, 16, 34], [1, 13, 15], [1, 28]]
就是相当于如果list[i][1]=list[i][0]的话,就合并这两个元素,并且删掉重复项
感激不尽啊! 展开
展开全部
list=[['0', '16'], ['1', '13'], ['16', '34'], ['13', '15'], ['1', '28']]
l = []
i = j = 0
while i < len(list):
flag = 0
while j < len(list) - i:
if list[i][1] == list[j][0]:
l += [[int(list[i][0]), int(list[i][1]), int(list[j][1])]]
del list[j]
flag = 1
break
j += 1
if flag == 0:
l += [[int(list[i][0]), int(list[i][1])]]
i += 1
print(l)
追问
您这个只能适用于合并成三个的,如果我要四个、五个、六个等等的话不知道怎么表达,能给个思路吗?谢谢谢谢
就比如[['0', '16'], ['1', '13'], ['16', '34'], ['13', '15'], ['1', '28'],['34', '21'],['21', '46']]
表达成[[0, 16, 34, 21, 46], [1, 13, 15], [1, 28]]这样的
追答
list=[['0', '16'], ['1', '13'], ['16', '34'], ['13', '15'], ['1', '28'],['34', '21'],['21', '46']]
while True:
l = []
i = j = 0
while i < len(list):
flag = 0
while j < len(list) - i:
if list[i][len(list[i])-1] == list[j][0]:
l += [list[i] + list[j][1:]]
del list[j]
flag = 1
break
j += 1
if flag == 0:
l +=[list[i]]
i += 1
if list == l:
break
list = l
l = []
for i in list:
t = []
for j in i:
t += [int(j)]
l += [t]
print(l)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询