0

我有一个(python) list of lists如下

biglist=[ ['1','123-456','hello','there'],['2','987-456','program'],['1','123-456','list','of','lists'] ]

我需要按以下格式获取

biglist_modified=[ ['1','123-456','hello there'],['2','987-456','program'],['1','123-456','list of lists'] ]

我需要连接third element onwards每个内部列表中的。我尝试通过使用来做到这一点list comprehensions

def modify_biglist(bigl):
    ret =[]
    for alist in bigl:
        alist[2] = ' '.join(alist[2:])
        del alist[3:]
        ret.append(alist)
    return ret

这可以完成工作..但它看起来有点复杂 - 有一个局部变量ret并使用del? 有人可以提出更好的建议吗

4

3 回答 3

7
[[x[0], x[1], " ".join(x[2:])] for x in biglist]

或者,就地:

for x in biglist:
    x[2:] = [" ".join(x[2:])]
于 2012-06-06T15:05:45.437 回答
5

要修改您的列表,您可以使用以下代码简化:

for a in big_list:
    a[2:] = [" ".join(a[2:])]
于 2012-06-06T15:07:48.253 回答
1

这应该这样做:

[x[:2] + [" ".join(x[2:])] for x in biglist]

略短。

于 2012-06-06T15:09:39.427 回答