求问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]的话,就合并这两个元素,并且删掉重复项
感激不尽啊!
展开
 我来答
大话残剑
2017-04-20 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:710万
展开全部
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)
gx...1@sohu.com
2017-04-20 · TA获得超过199个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:42万
展开全部
用两个手指在屏幕做缩小的手势就出现了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式