我有一個字符串列表的列表清單,這樣的事情(代表章節,段落和文本的句子)):如何扁平化列表,而留下一些嵌套(在python)
[ [[ ['chp1p1s1'], ['chp1p1s2'], ['chp1p1s3'] ],
[ ['chp1p2s1'], ['chp1p2s2'], ['chp1p2s3'] ]],
[[ ['chp2p1s1'], ['chp2p1s2'], ['chp2p1s3'] ],
[ ['chp2p2s1'], ['chp2p2s2'], ['chp2p2s3'] ]] ]
我知道如何(通過[x for y in z for x in y]
例如)完全地壓平這個名單,但我希望做的是部分變平,到最後是這樣的:
[ [ ['chp1p1s1'], ['chp1p1s2'], ['chp1p1s3'],
['chp1p2s1'], ['chp1p2s2'], ['chp1p2s3'] ],
[ ['chp2p1s1'], ['chp2p1s2'], ['chp2p1s3'],
['chp2p2s1'], ['chp2p2s2'], ['chp2p2s3'] ] ]
我設法通過一些for循環來解決這個問題:
semiflattend_list=list()
for chapter in chapters:
senlist=list()
for paragraph in chapter:
for sentences in paragraph:
senlist.append(sentences)
semiflattend_list.append(senlist)
但我想知道是否有更好,更短的解決方案? (我不認爲,zip
是很長的路要走,因爲我的列表的大小不同。)
你給的例子實際上是兩個不同列表的元組,我不認爲這是你的意思。你可能弄亂了括號或者逗號,但是我們需要一個可再生的例子 –