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 に答える